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

    class Solution {
    public:
        int findMin(vector<int> &num) {
            int L = 0, R = num.size() - 1;
            while (L < R && num[L] >= num[R]) {
                int mid= (L+R)/2;
                if (num[mid] > num[R]) {
                    L = mid + 1;
                } else if (num[mid] < num[R]){
                    R = mid;
                } else {
                    L++;
                }
            }
            return num[L];
        }
    };

    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.

    第二轮:

    class Solution {
    public:
        /**
         * @param num: the rotated sorted array
         * @return: the minimum number in the array
         */
        int findMin(vector<int> &num) {
            // write your code here
            int lo = 0;
            int hi = num.size() - 1;
            
            while (lo < hi) {
                int mid = (lo + hi) / 2;
                if (num[mid] < num[hi]) {
                    hi = mid;
                } else if (num[mid] > num[hi]) {
                    lo = mid + 1;
                } else {
                    hi--;
                }
            }
            return num[lo];
        }
    };
  • 相关阅读:
    python12306抢票
    函数、迭代器、生成器、装饰器
    类(面向对象、增删改查、继承、多态、封装、反射)
    js循环、异常、函数
    js引入、注释、事件
    天融信护网面试
    Java URL处理
    Java多线程编程
    Java网络编程
    Java序列化
  • 原文地址:https://www.cnblogs.com/lailailai/p/4386153.html
Copyright © 2011-2022 走看看