# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# pick candy
# @param arr int整型一维数组 the array
# @return int整型
#
class Solution:
def candy(self, arr: List[int]) -> int:
# write code here
n = len(arr)
if sum(arr) == n:
return n
degree = [[1] for _ in range(n)]
for i in range(1,n):
if arr[i]>arr[i-1]:
degree[i][0] = degree[i-1][0]+1
for i in range(2,n+1):
if arr[n-i]>arr[n-i+1]:
degree[n-i][0] = max(degree[n-i+1][0]+1,degree[n-i][0])
print(degree)
return sum(list(map(sum,degree)))
两遍循环,从前往后,当前数比前一个数大,则值+1
从后往前,当前数比后一个数大,则值+1



京公网安备 11010502036488号