题目:
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.
思路1:硬遍历,当出现"翻转"的时候,返回翻转区域的最小值
代码:
public int findMin(int[] nums) { if(nums.length == 1){ return nums[0]; } int iResult = nums[0]; for(int i =1 ;i< nums.length;i++){ if( nums[i]< nums[i-1] && iResult > nums[i]){ return nums[i]; } } return iResult; }
思路2:二分查找的变形。