代码训练营day1 数组part01

704.二分查找
文档讲解:

代码随想录

视频讲解:​​​​​​​

手把手带你撕出正确的二分法 | 二分查找法 | 二分搜索法 | LeetCode:704. 二分查找_哔哩哔哩_bilibili

第一遍做就是暴力,还多此一举以中间位置的元素将数组划分,然后去遍历得到目标元素的下标,花了33分钟,既没有使用二分法也不如直接去遍历得到结果。

代码训练营day1 数组part01_第1张图片​​​​​​​

后面根据卡哥的资料认真看了一下二分法的思路然后重新按照左闭右开、左开右闭做了一遍,对这个题目还是没有什么感觉,后续还需要观看视频讲解

27. 移除元素

文档讲解:

代码随想录

视频讲解:

数组中移除元素并不容易! | LeetCode:27. 移除元素_哔哩哔哩_bilibili

前一天了解了一下双指针的思想,所以很快就解决了,希望二刷的时候不会忘,

代码训练营day1 数组part01_第2张图片

一个指针寻找目标、一个指针更新数组

977.有序数组的平方

文档讲解:

代码随想录

视频讲解:

双指针法经典题目 | LeetCode:977.有序数组的平方_哔哩哔哩_bilibili

将每个数的平方传回数组然后按照大小顺序排列

关键是排序问题刚开始我只是单纯的用两个指针指向相邻的两个元素进行比较,然后交换位置,造成的问题就是遗漏了元素并且没有设置好循环条件,导致最后指针超出了数组的长度,结果返回一串莫名其妙的数字。

后来考虑到循环嵌套的方法大致方法如下:

尾指针指向最后一个元素,头指针指向第一个元素

内循环每次移动头指针和尾部进行比较,大于,就交换位置

我自己的感觉是中间有些比较是没有必要的重复操作所以后续我看看能不能修改代码提高运行效率

代码训练营day1 数组part01_第3张图片

你可能感兴趣的:(c++)