二分查找
二分查找是对数组中的区间进行查找。
有两种写法:一种是在闭区间内进行查找,另一种是在左闭右开区间内进行查找。
每次查找的时候只有按照这个方法就不会出错。
二分查找
写法一:
class Solution {
public:
int search(vector<int>& nums, int target) {
int left=0,right=nums.size()-1;
int mid;
while(left<=right){
mid = (left+right)/2; //也可以写成
int x=nums[mid];
if(x==target)return mid;
if(x>target){
right=mid-1;
}else{
left=mid+1;
}
}
return -1;
}
};
移除元素
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int l=0;
for(int i=0;i<nums.size();++i){
if(nums[i]!=val){
nums[l] = nums[i];
l++;
}
}
return l;
}
};
未完待续
标签:二分,nums,int,代码,随想录,mid,查找,数组 From: https://www.cnblogs.com/gamdwk/p/18029299