完成最大子数组和(动态规划搜素,答案正确,leetcode超内存)

This commit is contained in:
carry 2025-03-23 14:22:23 +08:00
parent cb17a48cc9
commit 9ec8ab41d9

35
maxSubArray.cpp Normal file
View File

@ -0,0 +1,35 @@
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class Solution {
public:
int maxSubArray(vector<int>& nums) {
if(nums.size()==1){
return nums[0];
}
else{
int max_num = *max_element(nums.begin(),nums.end());
vector<vector<int>> dp;
dp.push_back(nums);
for(int i = 1;i < nums.size();i++){
dp.push_back(vector<int>(dp[0].size()-1));
for(int j = 0;j < nums.size() - i;j++){
dp[1][j] = dp[0][j] + nums[j + i];
max_num = max(max_num,dp[1][j]);
}
dp.erase(dp.begin());
}
return max_num;
}
}
};
int main(){
Solution mysolution;
vector<int> array = {-2,1,-3,4,-1,2,1,-5,4};
cout << mysolution.maxSubArray(array);
return 0;
}