思路:没有思路,上来开干!
int search(int* nums, int numsSize, int target){
int numsLeft = 0;
int numsRight = numsSize - 1;
while(numsLeft <= numsRight) {
int numsMid = (numsLeft + numsRight) / 2;
if (nums[numsMid] == target) {
return numsMid;
} else if(nums[numsMid] > target) {
numsRight = numsMid - 1;
} else {
numsLeft = numsMid + 1;
}
}
return -1;
}
思路:使用快慢双指针:定义一个fast寻找目标值、定义一个slow为新数组赋值;
int removeElement(int* nums, int numsSize, int val){
//使用双指针:定义一个fast寻找目标值;定义一个slow新数组赋值
int fast = 0, slow = 0;
while(fast < numsSize) {
if(nums[fast] != val) {
nums[slow] = nums[fast];
slow++;
}
fast++;
}
return slow;
}