这个题目本来打算两次遍历来写,但是细节处理上出了问题,我想的是距离两个1的距离最大值,但是其实并不是这样的,只有值递增的时候才能递增
题目地址
class Solution:def candy(self, ratings: List[int]) -> int:n = len(ratings)a = [100000] + ratings + [100000]cnt = [100000]*(n+2)ans = 0le = [1]*(n+2)for i in range(1,n+1):if a[i]>a[i-1]:le[i] = le[i-1]+1ri = [1]*(n+2)for i in range(n,0,-1):if a[i]>a[i+1]:ri[i] = ri[i+1]+1# print(le)# print(ri)for i in range(1,n+1):cnt[i] = max(le[i],ri[i])ans += cnt[i]return ans