704. 二分查找
public static 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)
{
left = middle+1;
}
else if (nums[middle] > target)
{
right = middle-1;
}
else
{
return middle;
}
}
return -1;
}
27. 移除元素
思路: 双指针法
public static int RemoveElement(int[] nums, int val)
{
int left = 0;
int right = nums.Length - 1;//双指针
while (left <= right)
{
while (left <= right && nums[left] != val) left++;
while (left <= right && nums[right] == val) right--;
if (left < right) nums[left++] = nums[right--];
}
return left;//此时left一定是数组最后一个元素的下一位位置
}