154. Find Minimum in Rotated Sorted Array II

Posted wentiliangkaihua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了154. Find Minimum in Rotated Sorted Array II相关的知识,希望对你有一定的参考价值。

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.

Example 1:

Input: [1,3,5]
Output: 1

Example 2:

Input: [2,2,2,0,1]
Output: 0

Note:

  • This is a follow up problem to Find Minimum in Rotated Sorted Array.
  • Would allow duplicates affect the run-time complexity? How and why?
    class Solution {
        public int findMin(int[] nums) {
            int left = 0;
            int right = nums.length - 1;
            while (left < right) {
                int mid = left + (right - left) / 2;
                if (nums[mid] < nums[right]) {
                    right = mid;
                } else if (nums[mid] > nums[right]) {
                    left = mid + 1;
                } else {
                    --right;
                }
            }
            return nums[left];
        }
    }

    和search一样,如果有重复元素,right=mid,就right--减少数组元素。

以上是关于154. Find Minimum in Rotated Sorted Array II的主要内容,如果未能解决你的问题,请参考以下文章

154. Find Minimum in Rotated Sorted Array II

#Leetcode# 154. Find Minimum in Rotated Sorted Array II

154. Find Minimum in Rotated Sorted Array II

154. Find Minimum in Rotated Sorted Array II(Binary search)

154. Find Minimum in Rotated Sorted Array II

154 Find Minimum in Rotated Sorted Array II