由于增加是有最优化的1,而减少趋向无穷;分成两个小问题,第一步顺序遍历arr数组,如果要求递增,则ans数组下一个比当前大1.第二步逆序遍历arr数组,如果要求递增且ans数组不符合要求,则ans数组上一个比当前大1.
用例通过率: 100.00% 运行时间: 987ms 占用内存: 16832KB。
#
# pick candy
# @param arr int整型一维数组 the array
# @return int整型
#
class Solution:
def candy(self, arr):
ans = [1]*len(arr)
for i in range(0, len(arr)-1):
if arr[i+1] > arr[i]:
ans[i+1] = ans[i]+1
for i in range(1, len(arr)):
if arr[-i-1] > arr[-i] and ans[-i-1] <= ans[-i]:
ans[-i-1] = ans[-i]+1
return sum(ans)


京公网安备 11010502036488号