ARTS week1

用户头像
紫枫
关注
发布于: 2020 年 05 月 24 日

Algorithm

第一次尝试算法题,希望在后面的学习中慢慢提高

给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array

class Solution {
public int removeDuplicates(int[] nums) {
if(nums.length <= 0) {
return 0;
}
int left = nums[0];
int right = 0;
int len = 1;
for (int i = 1; i < nums.length;i++){
right = nums[i];
if(right > left) {
len = len + 1;
nums[len-1] = right;
left = right;
}
}
return len;
}
}

 

Review

 来源:http://blog.thefirehoseproject.com/posts/learn-to-code-and-be-self-reliant/

步履蹒跚的中英文对比看完了整篇文章,主要讲了开始学习编程的两个问题,第一步是熟悉编程,第二步是学习编程。

第一步主要是根据教程,也就是根据前人整理的路线,快速入门,学会写代码。这一步应该就是达到了初级或中级程序员的水平,也就是开发的第一个拐点The web development inflection point,学会building any database-driven application,基础的增删改查。通过代码中的bug和错误信息来提高编程的经验。大部分情况下,这一步都是按照别人的教程来的,学的很快,但不是自己思考总结得到的,很难提高独自解决问题的能力。

第二步就是抛开教程,独自学习。首先是学习特定领域的知识(domain-specific knowledge),学习算法和数据结构这种与具体编程语言无关的知识,触类旁通,入手其它语言也就很快了。这一步最关键的就是抛开别人的教程,通过第一手的资料、文档、博客还有第一步学到的基础知识(如果不扎实还要继续深入学习)掌握通用的知识。

第二步注定是令人沮丧的,困难的,就像在黑暗中摸索,不会像第一步一样快速,但相比较下更重要。所以心态很重要,不要被打击到,要坚持,每天都超越昨天的自己,总会见到阳光的。

最后,在这个过程中最重要的是坚持,要保持一个轻松的心态,不要过于劳累,这样只会延迟通过转折点的时间(但轻松不是拖延症的接口)。

Tip

Spring Boot的自动重启

加入依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>



可以通过设置触发文件防止每次都重启spring.devtools.restart.trigger-file



Share

最近看的一篇,http API认证,最开始使用session识别用户,后来使用token来识别用户,总感觉有些粗糙,相当于简化版的jwt token。

最主要的是区分Authentication(认证)和Authorization(授权);编码Base64Encode、签名HMAC、加密RSA,编码是为了更快的传输,签名是为了信息不被篡改,加密是为不让别人看到信息

https://coolshell.cn/articles/19395.html



用户头像

紫枫

关注

还未添加个人签名 2019.12.25 加入

还未添加个人简介

评论

发布
暂无评论
ARTS week1