leetcode 数组类算法
原地算法: 原地算法的实质就是 新开一个数组,只不过新的数组使用原数组的存储空间 。
运用的时候常常使用一个新的index角标来控制新数组的形成 。 一个迭代器遍历数组 。
快慢指针: 快慢指针也常常出现数组题之中 , 通常操作也都是针对慢指针而言,比较或者赋值。对于快指针而言作用只是迭代。
三指针:从数组的两端开始操作 , 中间使用一个迭代器遍历 。 这往往是leetcode指针最多的情况了 , 四指针没有必要。
下面总结一下 if else , if else if else , 想的时候 注意 每针对与上述的一种情况 , 那么另外两种情况是绝不会 发生的 。
这时候 找到 遍历的时候 ,不会对两边的 新下表产生影响的 else if语句 ,从他突破,思路上会更清楚 。
也可以采用极端的方法 ,找到边界条件。
leetcode: 重复的数字 ; (在做的过程中一定要分清楚是 存和自增的顺序) 。
快速排序:第k大或小的数 ;
二路归并: 如果在原数组上做的话, 要倒着从大到小排序。
滑动窗口: 探测和单调性(指的是得到最优解的时候, 两个端点只会向一个方向移动),可以用这个方法来降时间复杂度。
while探测的方式结束的条件并不是 非 , 而是本身。

浙公网安备 33010602011771号