爱射影院网站建设中,杭州营销型网站建设,网站如何做百度百科,价格低的英文一、解题思路
Max[i]表示#xff1a;以nums[i]为开头的所有连续子数组和的最大值。
由此可以推出Max[i-1]和Max[i]的关系#xff1a;
若Max[i]0#xff1a;Max[i-1]nums[i-1]Max[i]#xff1b;
否则#xff1a;Max[i-1]nums[i-1]#xff1b;
则ansMAX#xff0…一、解题思路
Max[i]表示以nums[i]为开头的所有连续子数组和的最大值。
由此可以推出Max[i-1]和Max[i]的关系
若Max[i]0Max[i-1]nums[i-1]Max[i]
否则Max[i-1]nums[i-1]
则ansMAXMax[0]、Max[1]、......、Max[n-1]
代码示例
class Solution {
public:int maxSubArray(vectorint nums) {int max,sum,n;nnums.size();sumnums[n-1];maxnums[n-1];for(int in-2;i0;i--){if(max0){maxnums[i];}else{maxnums[i];}if(summax){summax;}}return sum;}
};
二、拓展
同样的思路可以计算Min[i]以nums[i]为开头的所有连续子数组和的最小值。
这道题可以和力扣以下的题目相互照应做其核心思路相同
1749. 任意子数组和的绝对值的最大值 - 力扣LeetCodehttps://leetcode.cn/problems/maximum-absolute-sum-of-any-subarray/1749题该题要求计算连续子数组和的绝对值的最大值ans其中ans可以是最大值的绝对值也可以是最小值的绝对值。因此ansMAXabs(Max[0])、......、abs(Max[n-1])abs(Min[0])、......、abs(Min[n-1])。
1749题另一个解题思路
任意子数组和的绝对值的最大值【力扣1749】_叫小侯的小白程序员的博客-CSDN博客https://blog.csdn.net/qq_44228301/article/details/132190945这个思路中Min[i]、Max[i]的意义和本题是不同的。