Find Minimum in Rotated Sorted Array II

class Solution {
		public int findMin(int[] nums) {
			if (nums == null || nums.length == 0) {
				return -1;
			}
			if (nums.length == 1) return nums[0];
			
			int left = 0;
			int right = nums.length - 1;
			int mid = 0;
			while (left + 1 < right) {
				mid = left + (right - left) / 2;
				if (nums[mid] > nums[right]) {
					left = mid;
				} else if (nums[mid] < nums[right]) {
					right = mid;
				} else {
					right --;
				}
			}
			return nums[left] < nums[right] ? nums[left] : nums[right];
		}
}

最后更新于

这有帮助吗?