LeetCode热题100 最大子数组和

题目描述

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

子数组是数组中的一个连续部分。

示例 1:

输入: nums = -2,1,-3,4,-1,2,1,-5,4
输出: 6
解释: 连续子数组 4,-1,2,1 的和最大,为 6 。

示例 2:

输入: nums = 1
输出: 1

示例 3:

输入: nums = 5,4,-1,7,8
输出: 23

提示:

1<=nums.length<=1051 <= nums.length <= 10^51<=nums.length<=105
−104<=numsi<=104-10^4 <= numsi <= 10^4−104<=numsi<=104

思路

1 考虑动态规划。

2 fi表示以i结尾的数组的最大和,答案为max(fi)。

3 fi从fi-1转移过来,所以转移方程为fi = max(fi-1 + numsi, numsi)。

代码

cpp 复制代码
class Solution {
public:
    int maxSubArray(vector<int>& nums) {
		int ans = nums[0], pre = 0;
        for(auto &t : nums)
        {
			pre = max(pre + t, t);
			ans = max(ans, pre); 
		}
		return ans;
    }
};
相关推荐
Interview Aid11223 分钟前
Stripe VO 面经汇总:5 轮面试题目与考察重点
算法
EEET智选28 分钟前
科技晨间速报 | AI 安全警钟、开源新模型与苹果智能家居
人工智能·科技·算法·机器学习·ai
挖掘狂人40 分钟前
哈希算法:一根看不见的 "指纹",如何撑起整个互联网
算法·程序员·掘金技术征文
鶴哥只手遮天1 小时前
ecRad 1.5.0 算法原理详解
算法·开源
不会就选b1 小时前
算法日常・每日刷题--<动态规划>22
算法·动态规划
释厄6231 小时前
字画同体论——字即画·几何即字·漫画与小说=文本层
人工智能·算法
沫璃染墨2 小时前
从零入门数据结构与算法(一):复杂度分析——从算法效率到时间与空间复杂度
c语言·开发语言·数据结构·笔记·算法·飞书
熊猫钓鱼>_>2 小时前
面试出现 606 次的第 K 大,被拆成三个问题问
算法·面试·职场和发展·校招·面经·oj·ai生成
xuxigifxfh2 小时前
牛客:BISHI2 【模板】栈的操作
java·开发语言·windows·算法
INGNIGHT2 小时前
593 · 石头游戏 II (区间dp石子合并 翻倍循环问题)
leetcode