数组二分查找

难度困难

题目描述

image.png

解题思路

image.png

image.png
image.png
image.png

Code

  1. public int findMin(int[] nums) {
  2. int left = 0, right = nums.length - 1;
  3. while (left < right) {
  4. int mid = (left + right) / 2;
  5. if (nums[mid] > nums[right]) {
  6. left = mid + 1;
  7. } else if (nums[mid] < nums[right]) {
  8. right = mid;
  9. } else {
  10. right--;
  11. }
  12. }
  13. return nums[left];
  14. }