53. 最大子数组和
目录
题目
思路
看到题目说寻找最大和的连续子数组,想到了 「560. 和为 K 的子数组」 中的思路 前缀和。对于任意一个区间$[i, j]$($i \le j$)来说其和为: $$ sum[i, j] = preSum[j] - preSum[i - 1] $$ 我们的目标是找到一个和最大的连续子数组,即: $$ max(preSum[j] - preSum[i - 1]),j \in [0, nums.size() - 1] $$ 我们只需计算出每一个$preSum[j] - preSum[i - 1]$的值,取其中最大值作为答案。但对$preSum[j]$来说我们需要让其减去每一个$preSum[i - 1]$吗?并不需要,因为我们需要的是差值的最大值,所以只需要用一个变量$preSumMin$来记录最小的$preSum[i - 1]$,然后只需计算每一个 $preSum[j] - preSumMin$,取其中的最大差值为答案即可。
代码
|
|