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;
    }
};

总结:

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


相关推荐
圣保罗的大教堂5 分钟前
leetcode 2943. 最大化网格图中正方形空洞的面积 中等
leetcode
草原上唱山歌7 分钟前
推荐使用的C++ IDE
开发语言·c++·ide
独自破碎E24 分钟前
包含min函数的栈
android·java·开发语言·leetcode
wregjru24 分钟前
【C++】2.9异常处理
开发语言·c++·算法
玖釉-29 分钟前
[Vulkan 学习之路] 19 - 顶点缓冲区:顶点输入描述 (Vertex Input Description)
c++·windows·图形渲染
肆悟先生30 分钟前
3.18 constexpr函数
开发语言·c++·算法
txinyu的博客32 分钟前
select/poll/epoll
linux·c++
n***333540 分钟前
C++跨平台开发:挑战、策略与未来
开发语言·c++
D_evil__43 分钟前
【Effective Modern C++】第一章 类型推导:1.理解模板类型推导
c++
Tisfy1 小时前
LeetCode 2943.最大化网格图中正方形空洞的面积:小小思维
算法·leetcode·题解·数组·思维·排序·连续