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] 预期为真 输出假 为什么?问题出在哪里?
除了评论中提到的其他错误之外,您发布的代码永远不会返回
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