LeetCode 刷题【154. 寻找旋转排序数组中的最小值 II】
154. 寻找旋转排序数组中的最小值 II

自己做(歇菜)

看题解
class Solution {public int findMin(int[] nums) {int low = 0;int high = nums.length - 1;while (low < high) {int pivot = low + (high - low) / 2;if (nums[pivot] < nums[high]) {high = pivot;} else if (nums[pivot] > nums[high]) {low = pivot + 1;} else {high -= 1;}}return nums[low];}
}作者:力扣官方题解
链接:https://leetcode.cn/problems/find-minimum-in-rotated-sorted-array-ii/solutions/340800/xun-zhao-xuan-zhuan-pai-xu-shu-zu-zhong-de-zui--16/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
优化自己代码的判断条件
class Solution {public int findMin(int[] nums) {if(nums.length == 1)return nums[0];int begin = 0;int end = nums.length - 1;int mid = (begin + end) / 2;if(nums[begin] < nums[end]) //本就是升序return nums[begin];while(begin < end - 1){mid = (begin + end) / 2;if(nums[mid] > nums[end]) //落到左边begin = mid;else if(nums[mid] < nums[begin]) //落到右边end = mid;elseend--;}if(nums[begin] > nums[end])return nums[end];elsereturn nums[begin];}
}
