day1第一章 数组part01
二分查找
题目:https://leetcode.cn/problems/binary-search/
题解:
为什么采用该算法(二分法)
1.给定数组nums 是有序数组
2.数组的所有元素是不重复的
3.时间复杂度为O(logn)
盲点:
1.题目中 vector& nums
a.长度为 nums.size()
b.调用元素nums[i],类似数组
debug
1.int middle=left-(left+right)/2
这样写实际= left/2-right/2, 注意括号的问题,还是手算一下吧。
纠正为int middle=left+(right-left)/2;
移除元素
题目:https://leetcode.cn/problems/remove-element/
题解:
为什么采用该算法(双指针法)
时间复杂度为O(n),暴力算法为O(n^2)
盲点
1.库函数:vector.erase 删除数组中元素。
时间复杂度为O(n),非O(1)
因为数组的元素在内存地址中是连续的,所谓单独删除数组中的某个元素,
其实是覆盖:是将该元素后面的元素整体向前移。
2.fast指针用于找新数组的元素并赋值给新数组
slow指针用于接收目标元素,指向新数组下标
debug
1.for(int fast=0;fast<nums.size[];fast++)
我服了,原来是()写成了[]
缩放图片小技巧太牛了
csdn的markdown模式缩放图片
模板<img src=" XXX " width="70%">
原本
将https://img-blog.csdnimg.cn/c983df609300451d8c0de5db4d8d239d.png代进XXX, "70%"即缩放70%
`