最大子序和
题目
- 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和
操作代码
class Solution {
public:
int maxSubArray(vector<int>& nums)
{
int max = nums[0];
for(int i = 0;i<nums.size();i++)
{
int sum = 0;
for(int j = i;j < nums.size();j++)
{
sum+=nums[j];
if(sum > max)
max = sum;
}
}
return max;
}
};
解题思路
找到数组中的所有子数组并各自求和,找定一个最大值,先令其等于一个最小值,并通过其与各子数组之和来比较,如果和大于之前设置的最大值则将值赋予这个最大值,再接着比较
缺点
代码的时间复杂度较大,可以尝试其他方法来优化代码或者令寻他法。(待续)
题目链接:
https://leetcode-cn.com/problems/maximum-subarray/submissions/