代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素
704题主要注意一下区间的设置,另外要记得更新mid值,不然会陷入死循环。
class Solution {
public:
int search (vector<int>& nums, int target) {
int left = 0;
int right = nums.size() - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (nums[mid] > target) {
right = mid - 1;
}
else if (nums[mid] < target) {
left = mid + 1;
}
else if (nums[mid] == target) {
return mid;
}
}
return -1;
}
};
27题就是普通的双指针计数
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int len = 0;
int k= 0;
while (k < nums.size() ) {
if (nums[k] != val ) {
nums[len++] = nums[k];
}
k++;
}
return len;
}
};
自在飞花轻似梦

浙公网安备 33010602011771号