154. Find Minimum in Rotated Sorted Array II
Last updated
Last updated
/**
* Time complexity : O(N)
* Space complexity : O(1)
*/
class Solution {
public int findMin(int[] nums) {
if(nums == null || nums.length == 0) return 0;
int n = nums.length;
int i = 1;
while(i < n && nums[i-1] <= nums[i]) {
i++;
}
if(i >= n) return nums[0];
return nums[i];
}
}/**
* Time complexity : O(logN)
* Space complexity : O(1)
*/
class Solution {
public int findMin(int[] nums) {
if(nums == null || nums.length == 0) return 0;
int left = 0, right = nums.length-1;
while(left <= right) {
while(left != right && nums[left] == nums[right]) {
left++;
}
if(nums[left] <= nums[right]) {
return nums[left];
}
int mid = (left+right)/2;
if(nums[mid] >= nums[left]) {
left = mid+1;
} else {
right = mid;
}
}
return -1;
}
}