//My Method public static int searchInsert(int[] nums, int target) { int index = -1; for (int i=0; i<nums.length; i++) if (nums[i] == target) index = i; if (index == -1) { //位置可能是最左、最右或者中间 //1、最左 if (target < nums[0]) return 0; //2、最右 if (target > nums[nums.length-1]) return nums.length; //3、中间 int low = 0; int high = nums.length-1; while (low<=high) { int mid = (low+high)/2; if (target > nums[mid]) low = mid+1; if (target < nums[mid]) high = mid-1; // 1 4 7 9 11 15 17 } System.out.println(low+"------"+high); return low; } else { return index; } } // Others‘ Method public static int searchInsert_others(int[] A, int target) { int low = 0, high = A.length-1; while(low<=high){ int mid = (low+high)/2; if(A[mid] == target) return mid; else if(A[mid] > target) high = mid-1; else low = mid+1; } return low; }
【LeetCode-35】在已排序的数组中查找给出的目标值(包含目标值不存在的操作)
原文:https://www.cnblogs.com/nachdenken/p/12779445.html