分糖果问题

分糖果问题

http://www.nowcoder.com/questionTerminal/76039109dd0b47e994c08d8319faa352

由于增加是有最优化的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)
全部评论
我也想說這個空間複雜度不是 O(1)是 O(N)吧
1 回复 分享
发布于 2020-10-08 18:12
空间复杂度做不到O(1)吧?
1 回复 分享
发布于 2020-09-21 23:10

相关推荐

少年郎as:这不把公司名贴出来那我可要喷你了哦
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务