数组

一、二分查找

思想:寻找左右指针范围的边界

 

二、移除元素

思想:交换,将与目标值相同的元素赋值为数组最右侧元素值,同时最右侧指针左移,直到当前指针位置=右侧指针位置

 

三、有序数组的平方

思想:双指针

最大值只可能在数组的两端产生,不断对比左右指针大小排序

 

四、长度最小的子数组

思想:滑动窗口,不断调节子序列的起始终止位置。

只用一个for循环,索引为滑动窗口的终止位置

每一次循环中固定终止位置,通过不断变更起始位置来计算出最小值

 

五、螺旋数组

模拟过程,上行从左到右,右侧从上到下,下行从右到左,左侧从下到上

可以按照左闭右开原则,注意每次循环的额偏移量,并在四次循环后偏移量+2,起始位置XY轴各+1

循环次数可以按照旋转圈数n/2

每次for循环的判断条件

上:列<起始列位置+n-偏移量

右:行<起始行位置+n-偏移量

下:列>起始列位置

左:行>起始行位置

 

posted @ 2024-03-03 17:15  林晚n  阅读(14)  评论(0)    收藏  举报