|
发表于 2020-4-18 00:40:40
|
显示全部楼层
本帖最后由 阴阳神万物主 于 2020-4-18 00:51 编辑
这个我居然能错……
加一行就解决了……
- def solve(lst:'list of int',how:bool=False)->int:
- if not lst:
- raise ValueError('empty lst')
- le = len(lst)
- b,s = [lst[0]]*2
- l,r = 0,0
- for i in range(le-1):
- if lst[i]>lst[i+1]:
- b,s = [lst[i]]*2
- l,r = i,i
- break
- for i in range(l,le):
- n = lst[i]
- if n > b:b = n
- elif n < b:r = i
- if n < s:
- s = n
- for j in range(l,0,-1):
- if lst[j] < n:
- l = j+1
- break
- else:l = 0
- if not l and r+1==le:l -= 1
- if how:print(lst[l+1:r+1])
- return r-l
- if __name__ == '__main__':
- print('示例1 输出:',solve([2, 6, 4, 8, 10, 9, 15],1))
-
复制代码
|
|