704.二分查找
1.暴力解法
class Solution {
public:
int search(vector<int>& nums, int target)
{
for (int i=0; i<nums.size();i++)
{
if (nums[i] == target) return i;
}
return -1;
}
};
2. 二分查找
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-left)/2);
if (nums[middle] > target) right = middle-1;
else if (nums[middle] < target) left = middle + 1;
else return middle;
}
return -1;
}
};
27.移除元素
要理解快慢指针的用法,覆盖元素
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int slowIndex = 0;
for (int fastIndex = 0; fastIndex < nums.size(); fastIndex++) {
if (val != nums[fastIndex]) {
nums[slowIndex++] = nums[fastIndex];
}
}
return slowIndex;
}
};
之后把35.搜索插入位置 和 34. 在排序数组中查找元素的第一个和最后一个位置 学习一下。