动态规划 附带 视频讲解

牛牛的数列

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

相关推荐

已老实求offer😫:有点像徐坤(没有冒犯的意思哈)
点赞 评论 收藏
分享
沉淀一会:1.同学你面试评价不错,概率很大,请耐心等待; 2.你的排名比较靠前,不要担心,耐心等待; 3.问题不大,正在审批,不要着急签其他公司,等等我们! 4.预计9月中下旬,安心过节; 5.下周会有结果,请耐心等待下; 6.可能国庆节前后,一有结果我马上通知你; 7.预计10月中旬,再坚持一下; 8.正在走流程,就这两天了; 9.同学,结果我也不知道,你如果查到了也告诉我一声; 10.同学你出线不明朗,建议签其他公司保底! 11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
点赞 2 评论
分享
牛客网
牛客企业服务