1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| class Solution { public int findMin(int[] nums) { int i = 0; int j = nums.length - 1; while(i < j){ int mid = (i+j)/2; if(nums[mid]>nums[j]){ i = mid + 1; }else if(nums[mid] == nums[j] && nums[i] >= nums[j]){ i = i + 1; }else if(nums[mid] == nums[j] && nums[i] <nums[j]){ j = mid - 1; }else{ j = mid; } } return nums[i]; } }
|