问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int size = nums.size();
int dp[size][size]; //dp数组表明前面存储的元素的和
int sum = 0;
for(int i = 0;i<size;i++) //对元素进行初始化
dp[i][0] = sum+nums[i];
int max = dp[0][0];
for(int j = 1;j<size;j++){
for(int i = 0;i<=j;i++){
dp[i][j] = dp[i][j-1] + nums[i];
if(dp[i][j] > max)
max = dp[i][j];
}
}
return max;
}
};
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int size = nums.size();
//int dp[size][size]; //dp数组表明前面存储的元素的和
int sum = 0;
// for(int i = 0;i<size;i++) //对元素进行初始化
// dp[i][0] = sum+nums[i];
int max = nums[0];//dp[0][0];
for(int j = 0;j<size;j++)
{
sum=0;
for(int i =j;i<size;i++)
{
//dp[i][j] = dp[i][j-1] + nums[i];
sum+=nums[i];
if(max<sum)max=sum;
}
}
return max;
}
};