704 二分法
1. 设定左右(right的值与区间定义有关),选定左闭右开,设定初始mid值
2. 循环条件为左小于右(是否等于与区间判定有关,左闭右开不能等于,因为一个数不能既包含,又不包含)
3. 循环内设定if、elseif、elseif (是否相等也与区间定义有关),最后在循环内更新mid
4.循环外没有找到返回-1
class Solution {
public int search(int[] nums, int target) {
int left=0;
int right=nums.length;
int mid=left+(right-left)/2;
while(left<right)
{
if(nums[mid]>target)
{
right=mid;
}
else if(nums[mid]<target)
{
left=mid+1;
}
elseif
{return mid;}
mid=left+(right-left)/2;
}
return -1;
}
}
(根据左闭右闭,左闭右开区间的合理性判断条件是否正确)
27 移除元素 快慢指针
1. 设定slow,fa