1.给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array
思路:一开始自己的想法是放到map里,其实一般go去重的时候都会选择map实现,然后放到新的切片里就可以了,但是看题,原地删除,后来只能转变思想,看了下题解,因为我是刚开始刷算法,所以并没有技巧,这时候其实对于刚开始刷算法的人,可以自己先想一下自己的思路,然后看最优的题解,学习这种题解的方法,双指针会在很多题运用到,培养这种思路,因为我是凌晨的时候刷的这道题,我看后一度怀疑自己,问题在于,我改变的只是nums[:s+2]的值,后面的值依然没变,依然有值,跟题意不一样,纠结了半小时,为啥就对了,题中是每个元素只出现一次,如果不对nums做截取,你改变的只是部分,nums[s+2:]依然是之前的值,依然可能会存在重复,好吧,到最后我还是不纠结了,只是少一步截取,但是只要明白这种思路就好,双指针中的:快慢指针

2.盛最多水的容器
给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
说明:你不能倾斜容器,且 n 的值至少为 2。
示例:输入:[1,8,6,2,5,4,8,3,7]输出:49
我看好几遍题没看懂,看图就可以了,面积为底*高,横坐标好找,对于高度的话,只能找最小值,去乘以横坐标,得到最大面积,同样使用的是双指针


递归:通过调用函数体进行的循环
利用盗梦空间电影来类比递归,则得到:
1.向下进入到不同梦境中,向上又回到原来一层(不能跳跃,只能一层一层上或下)
2.用参数来进行函数不同层间的变量传递(类比盗梦空间中通过声音传到一层)
3.每一层的环境和人物都是一份拷贝,除了主角人物,主角人物可以不同层级的梦境,发生和携带变化,这时的主角团队就类似于函数里的参数,同时还会有一些全局变量
递归写法

1.在写递归时,一定要先把递归的终止条件 terminator,如果没有的话就会造成无限递归或者四递归
2.process,也就是在这一层级写业务代码,逻辑代码
3.drill down 进入到下一层
4. reverse 最后一步可能有时候不需要,就是清理当前层的参数或者其他数据
递归的思维要点:
1. 不要人肉进行递归,一开始时可以看函数华递归树,但是后续一定要直接看函数本身写递归
2.找到最近最简的方法,将其拆解成可重复解决的问题(重复子问题)
3.数学归纳法思维
爬楼梯问题:
傻递归,fibonacci

动态规划版:(对于递归法优化)

括号生成:

作业:
https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/
https://leetcode-cn.com/problems/validate-binary-search-tree/
网友评论