image.png

解题思路

二分查找

  1. public int binarySearch(int[] nums,int target,int n){
  2. int l=0,r=n; //在[l,...,r)的范围内寻找target 注意左闭右开
  3. while(l<r){ //只要还有可以寻找的内容就继续寻找 当l=r时区间依然有效
  4. int mid = (l+r)/2; //取中值
  5. if(nums[mid]==target)
  6. return mid;
  7. if(nums[mid]<target)
  8. l=mid+1; //target在[mid+1,r)中
  9. else
  10. r=mid; //target在[l,mid)中
  11. }
  12. return -1;
  13. }