题目: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]; } }