1 2 3 4 1 2 3 4

leetcode 数组类算法

原地算法: 原地算法的实质就是 新开一个数组,只不过新的数组使用原数组的存储空间 。

运用的时候常常使用一个新的index角标来控制新数组的形成 。 一个迭代器遍历数组 。 

 

快慢指针: 快慢指针也常常出现数组题之中 , 通常操作也都是针对慢指针而言,比较或者赋值。对于快指针而言作用只是迭代。 

 三指针:从数组的两端开始操作 , 中间使用一个迭代器遍历 。 这往往是leetcode指针最多的情况了 , 四指针没有必要。 

下面总结一下 if else  , if else if else , 想的时候 注意 每针对与上述的一种情况 , 那么另外两种情况是绝不会 发生的 。 

这时候 找到 遍历的时候 ,不会对两边的 新下表产生影响的 else if语句 ,从他突破,思路上会更清楚  。 

也可以采用极端的方法 ,找到边界条件。 

leetcode: 重复的数字 ; (在做的过程中一定要分清楚是 存和自增的顺序) 。 

 

快速排序:第k大或小的数 ; 

二路归并: 如果在原数组上做的话, 要倒着从大到小排序。 

滑动窗口:  探测和单调性(指的是得到最优解的时候, 两个端点只会向一个方向移动),可以用这个方法来降时间复杂度。 

while探测的方式结束的条件并不是 非 , 而是本身。

 

posted @ 2022-04-16 22:09  ₯_NO_Glory  阅读(36)  评论(0)    收藏  举报