//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;
}