53.最大子数组和

题目来源:

leetcode题目,网址:53. 最大子数组和 - 力扣(LeetCode)

解题思路:

动态规划,假设以第 i 个元素为结尾的最大子数组和为 dp[i],则 dp[i]=max(dp[i-1]+nums[i],nums[i])。最后返回其中最大值即可。

解题代码:

复制代码
class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int maxSum=nums[0];
        int pre=nums[0];
        for(int i=1;i<nums.size();i++){
            pre=max(pre+nums[i],nums[i]);
            maxSum=max(pre,maxSum);

        }
        return maxSum;
    }
};

总结:

官方题解给出了两种解法。第一种是动态规划。第二种是分治,分治法利用递归将原来的数组切割为一个一个的小数组,在小数组内获得问题的解,然后不断合并小数组,在此期间,根据小数组的信息得到大数组的相应信息。最后所有的小数组被合并为一个时,得到的数据即为所求。


相关推荐
Morwit10 小时前
【力扣hot100】 416. 分割等和子集
数据结构·c++·算法·leetcode·职场和发展
qeen8710 小时前
【算法笔记】二分查找与二分答案
c语言·c++·笔记·学习·算法·二分
Sylvia-girl10 小时前
类与对象(下)
c++·友元函数·类与对象
Hello eveybody10 小时前
介绍最大公因数和最小公约数(C++)
java·开发语言·c++
宵时待雨10 小时前
优选算法专题3:二分查找
数据结构·c++·算法·leetcode·职场和发展
Byte不洛11 小时前
理解C++异常机制:栈展开、异常传播与异常安全
c++·异常处理·后端开发·编程基础·try catch
我头发多我先学11 小时前
C++ AVL 树:平衡原理到完整实现(自平衡二叉搜索树)
开发语言·数据结构·c++·算法
啊我不会诶11 小时前
2025浙江省赛补题
c++·算法
@小柯555m11 小时前
算法(字母异位词分组)
java·开发语言·算法·leetcode
郝学胜-神的一滴11 小时前
epoll 边缘触发 vs 水平触发:从管道到套接字的深度实战
linux·服务器·开发语言·c++·网络协议·unix