leetcode每日一题:连续子数组额的最大和

第一次写法,调用了空间的数组
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int n = nums.size();
vector<int> res(n + 1);
res[0] = nums[0];
int maxn = res[0];
for (int i = 1; i < n; i ++ )
{
res[i] = max(res[i - 1] + nums[i], nums[i]);
maxn = max(maxn, res[i]);
}
return maxn;
}
};

class Solution {
public:
int maxSubArray(vector<int>& nums) {
int n = nums.size();
int maxn = nums[0];
for (int i = 1; i < n; i ++ )
{
if(nums[i - 1] > 0)
nums[i] += nums[i - 1];
maxn = max(maxn, nums[i]);
}
return maxn;
}
};
本文介绍了一种解决LeetCode上连续子数组最大和问题的方法。通过两种不同的实现方式,展示了如何利用动态规划思想来找到给定数组中具有最大和的连续子数组。第一种方法使用了辅助数组来记录中间结果,而第二种方法则进行了优化,直接在原数组上进行操作。
1246

被折叠的 条评论
为什么被折叠?



