二分查找

本质:一边满足,一边不满足,找到最后满足的

二分查找的扩展

要求:
对于一组有序的数组,如果存在某一个值等于target,则返回该值下标,否则返回比target大的第一个值的下表

  1. public int searchInsert(int[] nums, int target) {
  2. int left = 0, right = nums.length - 1, index = nums.length;
  3. while(left <= right) {
  4. int mid = (left + right) / 2;
  5. if(nums[mid] == target) {
  6. return mid;
  7. }else if (nums[mid] < target) {
  8. left = mid + 1;
  9. } else {
  10. right = mid - 1;
  11. index = mid;
  12. }
  13. }
  14. return index;
  15. }