1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class Solution { public int findMagicIndex(int[] nums) { return findMagicIndex(nums, 0, nums.length - 1); }
private int findMagicIndex(int[] nums, int left, int right) { if (left > right) { return -1; }
int mid = (left + right) >>> 1; int index = findMagicIndex(nums, left, mid - 1); if (index != -1) { return index; } else if (nums[mid] == mid) { return mid; } else { return findMagicIndex(nums, mid + 1, right); } } }
|