53.最大子数组和

题目来源:

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

解题思路:

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

解题代码:

复制代码
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;
    }
};

总结:

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


相关推荐
_wyt0014 小时前
洛谷 B3930 [GESP202312 五级] 烹饪问题 题解
c++·gesp
玖玥拾8 小时前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
один but you9 小时前
constexpr函数
c++
凡人叶枫10 小时前
Effective C++ 条款41:了解隐式接口和编译期多态
java·开发语言·c++·effective c++
凡人叶枫10 小时前
Effective C++ 条款42:了解 typename 的双重意义
java·linux·服务器·c++
小胖xiaopangss10 小时前
BRpc使用
c++·rpc
-森屿安年-10 小时前
63. 不同路径 II
c++·算法·动态规划
chase_my_dream11 小时前
Cartographer详细讲解
c++·人工智能·自动驾驶
森G11 小时前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt
碧海蓝天202211 小时前
C++法则24:在标准 C++ 中,没有任何可移植的方式判断指针 T* pt 指向的内存位置是否已经 构造了对象,程序员必须手动跟踪哪些元素已构造。
java·开发语言·c++