154. Find Minimum in Rotated Sorted Array II

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.

The array may contain duplicates.

Note:

Constraints

Approach

Examples

Input: [1, 3, 5]

Output: 1

Solutions

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

Follow up

Last updated

Was this helpful?