用python语言解决的有效山数组leetcode问题需要帮助审查代码

问题描述 投票:0回答:1

enter image description here

class Solution(object):
    def validMountainArray(self, arr):
        """
        :type arr: List[int]
        :rtype: bool
        """
        list=[]
        for i in arr:
            if i not in list:
                list.append(i)
        if len(list)==len(arr):
            maxi=max(arr)
            index=arr.index(maxi)
            if arr[:index]==arr[:index].sort() and arr[index:]==arr[index:].sort(reverse=True):
                return True

对于测试用例 [0,3,2,1] 预期为真 输出假 为什么?问题出在哪里?

python arrays list sorting
1个回答
0
投票

除了评论中提到的其他错误之外,您发布的代码永远不会返回

False
。可能您错过了代码的某些行。不知道为什么你要求
arr
的元素应该是唯一的。 并且不需要切片和排序。 像这样的东西是有效的。

class Solution:
    def validMountainArray(self, arr: List[int]) -> bool:
        m = max(arr)
        ind = arr.index(m)
        print(n, ind)
        if ind == n - 1 or ind == 0:
            return False
        for i in range(1, ind):   
            if arr[i] <= arr[i-1]:
                return False
        for i in range(ind+1, len(arr)):
            if arr[i] >= arr[i-1]:
                return False
        return True
© www.soinside.com 2019 - 2024. All rights reserved.