由于增加是有最优化的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)