主页 > 电脑硬件  > 

(动态规划最大(连续)子数组和)leetcode53

(动态规划最大(连续)子数组和)leetcode53

这道题和上个文章(动态规划 最长连续递增子序列)leetcode 674有异曲同工之妙,本质是一样的,只是这个题更基础一点

递推公式中dp[i]=max(dp[i],dp[i]+dp[i-1]),可以发现,这里如果是背包问题,不取应该是max(dp[i-1],**)但是这里是dp[i]意思是满足题意 也就是重新自立门户为子数组的开头

dp[i]+dp[i-1]这里是为了构成子数组和而存在的

连续子数组也就是子串,这里有m个子串(m属于n) n=nums.size();

每个子串的长度不一

class Solution { public: int maxSubArray(vector<int>& nums) { int ans=nums[0]; for(int i=1;i<nums.size();i++) { nums[i]=max(nums[i],nums[i-1]+nums[i]); ans=max(ans,nums[i]); } return ans; } };

标签:

(动态规划最大(连续)子数组和)leetcode53由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“(动态规划最大(连续)子数组和)leetcode53