leetcode最大子数组之和,用我这种思路可以解吗?

问题遇到的现象和发生背景

问题相关代码,请勿粘贴截图
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;
    }
};