zoukankan      html  css  js  c++  java
  • Find Minimum in Rotated Sorted Array II

    Description:

    Follow up for "Find Minimum in Rotated Sorted Array":
    What if duplicates are allowed?

    Would this affect the run-time complexity? How and why?

    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.

    The array may contain duplicates.

    Code:

     bool flag = true;
     int findMin(vector<int>& nums) {
        if (nums.size()==0){
              flag = false;
          return 0;
            }
           int left = 0;
           int right = nums.size()-1;
           while (left < right)
           {
               int mid = (left + right)/2;
               if (nums[mid] < nums[right])
                    right = mid;
               else if (nums[mid] > nums[right])
                    left = mid+1;
               else
               {
                   //此时不能判最小值在左边还右边,遍历判断
                    int result = nums[left];
                    for (int i = left+1; i <= right; i++)
                    {
                        if ( nums[i] < result)
                             result = nums[i];
                    }
                    return result; 
               }
           }
           return nums[left];
        }
     
  • 相关阅读:
    鲁迅散文——随感录三十五
    跳一跳201803-1
    鲁迅散文——狗的驳诘
    鲁迅散文——立论
    小中大201903-1
    鲁迅散文——题辞
    小明上学201812-1
    买菜201809-2
    Linux常用命令-2
    LaTeX——基本介绍及字体设置
  • 原文地址:https://www.cnblogs.com/happygirl-zjj/p/4592202.html
Copyright © 2011-2022 走看看