leetcode.852.PeakIndexinaMountainArray

Posted wolfanature

tags:

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

 

links: 

https://leetcode.com/problems/peak-index-in-a-mountain-array/


  我的思路,直接遍历查找,找到第一个变小的数的位置,之前的那个位置就目的index

class Solution(object):
    def peakIndexInMountainArray(self, A):
        """
        :type A: List[int]
        :rtype: int
        """
        index = 0
        for i in range(len(A)-1):
            if A[i] > A[i+1]:
                index = i
                break
        return index
        

  看了其他人的解决方案,如下:

class Solution2(object):
    def peakIndexInMountainArray(self, A):
        """
        :type A: List[int]
        :rtype: int
        """
        return A.index(max(A))

   做了下小小的测试,这里让长度尽量大一些(这里N=50000+50000),看下两者执行速度上的差距。

import cProfile
A = [i for i in range(50000)] + [50000-j for j in range(50000)]

s = Solution()
s2 = Solution2()

def testCase2():
	cProfile.run("s.peakIndexInMountainArray(A)")
	cProfile.run("s2.peakIndexInMountainArray(A)")

  发现方案2要快一些。 技术图片

 

以上是关于leetcode.852.PeakIndexinaMountainArray的主要内容,如果未能解决你的问题,请参考以下文章