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

題目:

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.

思路:有點類似之前的一道題,Search Rotated Sorted Arrayhttp://blog.csdn.net/u013127687/article/details/50662421

需要考慮的特殊情況:Rotated 位置在0或者末尾,這樣這個數組仍是排序的。

代碼:

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];
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章