leetcode704.二分查找
//二分查找,采用左闭右开区间写法
int search(vector<int>& nums, int target) {
int left=0;
int right=nums.size();
int mid=0;
while(left<right){
mid=left+right>>1;
if(nums[mid]>target){
right=mid;
}else if(nums[mid]<target){
left=mid+1;
}else{
return mid;
}
}
return -1;
}
//左闭右闭区间写法
int search(vector<int>& nums, int target) {
int left=0,right=nums.size()-1;
int mid=0;
while(left<=right){
mid=(left+right)>>1;
if(nums[mid]>target){
right=mid-1;
}
else if(nums[mid]<target){
left=mid+1;
}else{
return mid;
}
}
return -1;
}
总结:学习了区间的具体含义
leetcode27. 移除元素
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];
slow++;
}
}
return slow;
}
了解了快慢指针的用法,还有一道类似题目leetcode283移动0