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];
        }
    };
  • 相关阅读:
    git中文输入显示问题
    how to write a DLL/SO in C/C++ for Python
    python,ctypes
    vc++,dll,lib文件百科
    c++ singleton
    build python on windows
    web前端后端
    动态链接库*.so的编译与使用
    qt,ui,QUiLoader
    qt,script
  • 原文地址:https://www.cnblogs.com/lailailai/p/4386153.html
Copyright © 2011-2022 走看看