代码随想录第一章数组part01

  1. 二分查找 https://leetcode.cn/problems/binary-search/

一定要区分左闭右闭和左闭右开区间

根据区间不变性原则,右闭则左右都可能为解,因此边界条件,为left<=right; 区间在缩放时,right=mid-1, left=mid+1.

右开则左边可以为解,右边一定不为解,所以当left=right时就已经可以确定元素不存在了,边界条件left<right; 区间缩放时,right=mid(因为right不可能为解),left = mid + 1;

  1. 双指针(2,3题一起总结了)https://leetcode.cn/problems/remove-element/ https://leetcode.cn/problems/squares-of-a-sorted-array/

对于数组这种数据结构而言,它的内存地址是连续的,因此我们不能够单纯的删掉某个元素,还要把后边的元素往前覆盖,以此保证数组的连续性,那么最简单的方式就是两个for循环,第一个查看题目所要的元素,第二个for循环把后边的元素往前覆盖,但是这样做的时间复杂度很高,因此采用双指针的办法,只用一个for循环,slowIndex去记录更新之后的数组,fastIndex去记录新数组需要的元素。当然双指针还有别的应用场景,比如第三题,这里由于本人暑假实习加上学校的小学期比较忙,因此就先写到这里,作为打卡记录鞭策自己。

posted @ 2025-07-08 23:50  YZranger  阅读(89)  评论(0)    收藏  举报