第一章 数组part01
1、数组理论基础
文章链接:programmercarl.com/%E6%95%B0%E…
题目建议: 了解一下数组基础,以及数组的内存空间地址,数组也没那么简单。
2、 704. 二分查找
题目思路·: 二分查找法以前了解过许多,但是一直没有明白其中middle和不等号的运用,今天算是彻底的搞懂了
class Solution {
public:
int search(vector<int>& nums, int target) {
int left = 0;
int right = nums.size() - 1;
while(left <= right) {
int middle = (left + right)/2;
if(nums[middle] > target) {
right = middle -1;
}else if (nums[middle] < target){
left = middle + 1;
}else {
return middle;
}
}
return -1;
}
};
文章讲解:programmercarl.com/0704.%E4%BA…
视频讲解:www.bilibili.com/video/BV1fA…
3、移除元素
题目思路: 一开始思路想要暴力求解,但是调试了一个小时,还是没有调试出来结果,看了视频和文章后,双指针太秒了,原来数据结构与算法这么有趣。
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int slow = 0;
for(int fast = 0; fast < nums.size(); fast++ ) {
if(nums[fast] !=val)
nums[slow++] = nums[fast];
}
return slow;
}
};