1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| class Solution { public int searchInsert(int[] nums, int target) { return searchInsert(nums, target, 0, nums.length - 1); }
public int searchInsert(int[] nums, int target, int begin, int end) { if (nums[0] > target) { return 0; } else if (nums[nums.length - 1] < target) { return nums.length - 1; }
int middle = (begin + end) / 2; if (middle == begin || middle == end) { if (nums[begin] == target) { return begin; } else { return end; } } if (nums[middle] == target) { return middle; } else if (target < nums[middle]) { return searchInsert(nums, target, begin, middle); } else { return searchInsert(nums, target, middle, end); } } }
|