动态规划 附带 视频讲解

牛牛的数列

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

相关推荐

真烦好烦真烦:豆包润色了自己没看看吗,再说了,都说豆包是愚蠢且勤快的大学生,ds才是聪明的研究生,怎么敢让豆包写论文的
你们的毕业论文什么进度了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 17:13
想去,但是听说加班强度实在难崩,所以拒绝了,现在有点心梗对面hr感觉也是实习生,打电话的时候怪紧张的,但是感觉人很好嘞
水中水之下水道的鼠鼠:哥们这不先去体验一下,不行再跑呗,大不了混个实习经历(有更好的转正offer就当我没说)
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

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