阅读 76

LeetCode53 最大子序和

LeetCode53 最大子序和

  • 题目

  • 解题


    • 解题一:动态规划

    • 解题二:分治法


题目

在这里插入图片描述
在这里插入图片描述

解题

解题一:动态规划

在这里插入图片描述

// javascriptvar maxSubArray = function(nums) {
    let numLen = nums.length;
    let curSum = nums[0], maxSum = nums[0];
    for (let i = 1; i < numLen; i++) {
        curSum = Math.max(nums[i], curSum + nums[i]);
        maxSum = Math.max(maxSum, curSum);
    }
    return maxSum;};

在这里插入图片描述

解题二:分治法

在这里插入图片描述

// javascriptvar Status = function(l, r, m, i) {
    this.lSum = l;
    this.rSum = r;
    this.mSum = m;
    this.iSum = i;};const pushUp = (l, r) => {
    const iSum = l.iSum + r.iSum;
    const lSum = Math.max(l.lSum, l.iSum + r.lSum);
    const rSum = Math.max(r.rSum, r.iSum + l.rSum);
    const mSum = Math.max(l.mSum, r.mSum, l.rSum + r.lSum);
    return new Status(lSum, rSum, mSum, iSum);};const getInfo = (nums, l, r) => {
    if (l === r) return new Status(nums[l], nums[l], nums[l], nums[l]);
    const mid = (l + r) >> 1;
    const lSub = getInfo(nums, l, mid);
    const rSub = getInfo(nums, mid + 1, r);
    return pushUp(lSub, rSub);};var maxSubArray = function(nums) {
    return getInfo(nums, 0, nums.length - 1).mSum;};

在这里插入图片描述
解法二存在的意义:
在这里插入图片描述

标签:rSum,const,最大,nums,LeetCode53,iSum,mSum,lSum,子序
来源: https://blog.csdn.net/weixin_45561634/article/details/120669230


文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐