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

    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.

    分析:

    之前Find Minimum in Rotated Sorted Array这篇文章中的分析和解法对于这个问题一样适用,算法复杂度是O(n)。

    一样的代码无需任何修改就Accepted了,这个问题的难度级别还被标注为Hard,真是令人费解。

    class Solution:
    
        # @param num, a list of integer
        # @return an integer
        def findMin(self, num):
            pre = num[0]
            for i in num[1:]:
                if i < pre:
                    return i
                else:
                    pre = i
            return num[0]
    
    if __name__ == '__main__':
        s = Solution()
        assert s.findMin([5, 5, 6, 6, 0, 1, 2]) == 0
        print 'PASS'

    小结:

    我觉得这两道题目出的有点奇怪,也许出题者的本意有被遗漏的地方?

  • 相关阅读:
    将.lib库文件转换成.a库文件的工具
    协议
    协议
    bzoj1066
    bzoj2668
    bzoj2245
    bzoj2324后续思考
    bzoj2324
    jsoi2014前两轮回眸
    bzoj1293
  • 原文地址:https://www.cnblogs.com/openqt/p/4040759.html
Copyright © 2011-2022 走看看