Problem Description:
Suppose an array sorted in ascending order 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.
Example 1:
Input: [3,4,5,1,2] Output: 1Example 2:
Input: [4,5,6,7,0,1,2] Output: 0
Analysis:
本题利用了其旋转的特点,从后向前遍历找到第一个数值其小于后面一个值。代码如下:
Code:
class Solution {
public int findMin(int[] nums) {
for(int i = nums.length - 2; i >= 0; i--) {
if(nums[i] > nums[i + 1]) {
return nums[i + 1];
}
}
return nums[0];
}
}