【leetcode】Array——Find Minimum in Rotated Sorted Array(153)

题目:java

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).spa

Find the minimum element..net

You may assume no duplicate exists in the array.code

思路:有点相似以前的一道题,Search Rotated Sorted Arrayhttp://blog.csdn.net/u013127687/article/details/50662421blog

须要考虑的特殊状况:Rotated 位置在0或者末尾,这样这个数组还是排序的。排序

代码:element

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