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

总结:

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


相关推荐
凡人叶枫1 小时前
Effective C++ 条款16:成对使用 new 和 delete 时要采取相同形式
开发语言·c++·effective c++
菜鸟‍1 小时前
LeetCode 1 27 和 704 || 两数之和 移除元素 二分查找
算法·leetcode·职场和发展
不吃土豆的马铃薯1 小时前
C++ 高性能网络缓冲区 Buffer 源码解析
linux·服务器·开发语言·网络·c++
.千余2 小时前
【C++】C++继承入门(下):友元、静态成员与菱形继承的底层逻辑
开发语言·c++·笔记·学习·其他
初中就开始混世的大魔王2 小时前
6 Fast DDS-传输层
开发语言·c++·中间件·信息与通信
退休倒计时3 小时前
【每日一题】LeetCode 142. 环形链表 II TypeScript
算法·leetcode·链表·typescript
代码中介商5 小时前
C++ 智能指针完全指南(三):weak_ptr 与循环引用
开发语言·c++
BestOrNothing_20155 小时前
ROS2 C++ 小车控制完整实战(二):自定义 msg 消息发布与订阅保姆级教程
c++·ros2·subscriber·publisher·msg·topic通信·自定义接口
-森屿安年-5 小时前
91. 解码方法
c++·动态规划
有点。5 小时前
C++(二分答案)
c++