[leetcode Maximum Subarray]week 19
2017-07-07 02:11
465 查看
一、题目
Findthe contiguous subarray within an array (containing at least one number) whichhas the largest sum. For example, given the array [-2, 1, -3, 4, -1, 2, 1,-5, 4], the contiguous subarray [4, -1, 2, 1]
has the largest sum = 6.
二、代码
class Solution {
public:
intmaxSubArray(vector<int>& nums) {
int maxsum=nums[0],tmp=0;
for (int i=0;i<nums.size();i++){
if(tmp+nums[i]>nums[i])
tmp=tmp+nums[i];
else
tmp=nums[i];
if (tmp>maxsum)
maxsum=tmp;
}
return maxsum;
},
};
三、思路
求数组中连续数字的最大合,本来想的是从头依次相加遇到负数(因为负数一定会让当前和减小)就保存一次合然后从下一个数重新计算,但是发现如果负数后面又接着一个绝对值比负数大的正数就是不行的(比如-1和+2)。所以利用动态规划,从给第一个数开始算合,每一次比较和加当前值与当前值的大小,若当前值比和加当前值的结果还大则让和变为当前值(重新一轮运算)。每一步将当前和与储存和的变量作比较并根据结果交换。
Findthe contiguous subarray within an array (containing at least one number) whichhas the largest sum. For example, given the array [-2, 1, -3, 4, -1, 2, 1,-5, 4], the contiguous subarray [4, -1, 2, 1]
has the largest sum = 6.
二、代码
class Solution {
public:
intmaxSubArray(vector<int>& nums) {
int maxsum=nums[0],tmp=0;
for (int i=0;i<nums.size();i++){
if(tmp+nums[i]>nums[i])
tmp=tmp+nums[i];
else
tmp=nums[i];
if (tmp>maxsum)
maxsum=tmp;
}
return maxsum;
},
};
三、思路
求数组中连续数字的最大合,本来想的是从头依次相加遇到负数(因为负数一定会让当前和减小)就保存一次合然后从下一个数重新计算,但是发现如果负数后面又接着一个绝对值比负数大的正数就是不行的(比如-1和+2)。所以利用动态规划,从给第一个数开始算合,每一次比较和加当前值与当前值的大小,若当前值比和加当前值的结果还大则让和变为当前值(重新一轮运算)。每一步将当前和与储存和的变量作比较并根据结果交换。
相关文章推荐
- [week 8][Leetcode][Dynamic Programming] Maximum Subarray
- LeetCode Week2: Maximum Subarray、Merge k Sorted Lists
- LeetCode[Dynamic Programming]: Maximum Product Subarray
- LeetCode题解:Maximum Subarray
- leetcode 152 Maximum Product Subarray
- Leetcode: Maximum Subarray
- [LeetCode]Maximum Product Subarray
- LeetCode刷题笔录Maximum Subarray
- leetcode 152 —— Maximum Product Subarray
- 【LeetCode】Maximum Product Subarray
- Leetcode: Maximum Product Subarray
- Leetcode--Maximum Product Subarray
- Leetcode—Maximum Product Subarray
- LeetCode之Maximum Subarray
- leetcode Maximum Subarray 最大子序列
- LeetCode:Maximum Product Subarray
- Leetcode 53-Maximum Subarray 解题报告
- leetcode. Maximum Product Subarray
- Maximum Product Subarray(leetcode第152题)
- [LeetCode] Maximum Product Subarray