代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素

第一章  数组part01

今日任务

数组理论基础,704. 二分查找,27. 移除元素

详细布置

数组理论基础

文章链接:https://programmercarl.com/%E6%95%B0%E7%BB%84%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html

题目建议: 了解一下数组基础,以及数组的内存空间地址,数组也没那么简单。

704.二分查找

题目建议: 大家能把 704 掌握就可以,35.搜索插入位置 和 34. 在排序数组中查找元素的第一个和最后一个位置,如果有时间就去看一下,没时间可以先不看,二刷的时候在看。

先把 704写熟练,要熟悉 根据 左闭右开,左闭右闭 两种区间规则 写出来的二分法

题目链接:https://leetcode.cn/problems/binary-search/

文章讲解:https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.html

视频讲解:https://www.bilibili.com/video/BV1fA4y1o715


VS左闭右开:

1、right = nums.size(),不用再-1了;

2、While(left < right),没有等于,因为right取不到;

3、nums[middle]VStarget:

if<: left =middle+1;

if>: right =

middle,因为right取不到,在区间外


注:数组最后!=’\0’


27.移除元素

题目建议: 暴力的解法,可以锻炼一下我们的代码实现能力,建议先把暴力写法写一遍。双指针法

是本题的精髓,今日需要掌握,至于拓展题目可以先不看。

题目链接:https://leetcode.cn/problems/remove-element/

文章讲解:https://programmercarl.com/0027.%E7%A7%BB%E9%99%A4%E5%85%83%E7%B4%A0.html

视频讲解:https://www.bilibili.com/video/BV12A4y1Z7LP


双指针法(快慢指针法)就是一个fast指针,一个low指针,首先用fast指针判断是否等于val,然后不等于就用fast指针当前指向的位置的数值覆盖low指针当前指向的位置的数值):


注意:

1、就在同一个数组里面覆盖就好,不必新建一个数组;

2、如何新建数组还是学一下比较好:


双向指针法(左边一个指针,右边一个指针,两边相遇这样)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容