动态规划 附带 视频讲解

牛牛的数列

http://www.nowcoder.com/questionTerminal/f2419f68541d499f920eac51c63d3f72

视频讲解:https://www.bilibili.com/video/BV1LN411R7i6/

class Solution:
    def maxSubArrayLength(self , nums ):
        n = len(nums)
        # 以 tail[i] 结尾的 最长连续上升子序列
        tail = [0] * n
        # 以 head[i] 开始的 最长连续上升子序列
        head = [0] * n
        tail[0] = 1
        # 最左向右 找出 连续的子序列
        for i in range(1, n):
            if nums[i] > nums[i - 1]:
                tail[i] = tail[i - 1] + 1
            else:
                tail[i] = 1
        head[n - 1] = 1
        # 从右向左 找出 连续的子系列 
        for i in range(n - 2, -1, -1):
            if nums[i + 1] > nums[i]:
                head[i] = head[i + 1] + 1
            else:
                head[i] = 1
        # 最终结果
        res = 1
        for i in range(1, n - 1):
            # 更新 最大的结果
            res = max(tail[i], head[i], res)
            # 填充 需要 弥补的
            if nums[i + 1] - nums[i - 1] >= 2:
                res = max(res, head[i + 1] + tail[i - 1] + 1)
        return res
全部评论
res = max(tail[i], head[i], res)少了加一
点赞 回复 分享
发布于 2021-06-05 04:54

相关推荐

程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
06-12 10:50
门头沟学院 Java
你的不定积分没加C:我怎么在学院群看到了同样的话
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

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