[LeetCode]Find Minimum in Rotated Sorted Array

Suppose a sorted array is rotated at some pivot unknown to you beforehand.

(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).

Find the minimum element.

You may assume no duplicate exists in the array.


二分法· 注意left和right的选择

public class Solution {
	public int findMin(int[] num) {
		assert num.length>0;
		int left = 0,right = num.length-1;
		while(left<right){
			if(num[left]<num[right]) return num[left];
			int mid = (left+right)/2;
			if(num[mid]>num[right]){
				if(mid==left) left = mid++;
				left = mid;
			}else{
				right = mid;
			}
		}
		return num[left];
	}
}



你可能感兴趣的:(java,LeetCode,二分法)