class Solution {
public int search(int[] nums, int target) {
int left = 0;
int right = nums.length - 1;
while(left <= right){
int middle = left + ((right - left) / 2);
if(nums[middle] > target){
right = middle - 1;
}
if(nums[middle] < target){
left = middle + 1;
}
if(nums[middle] == target){
return middle;
}
}
return -1;
}
}
需要注意的点,区间左闭右闭还是左闭右开
lass Solution {
public int removeElement(int[] nums, int val) {
int slow = 0;
for(int fast = 0; fast < nums.length; fast ++){
if(nums[fast] != val){
nums[slow] = nums[fast];
slow ++;
}
}
return slow;
}
}
双指针思路有两种,一种是快慢指针,一种是相向双指针