Find Minimum in Rotated Sorted Array

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 {
						right = mid;
					}
				}
				return nums[left] < nums[right] ? nums[left] : nums[right];
		}
}

最后更新于

这有帮助吗?