完成最大子数组和(动态规划搜素,答案正确,leetcode超内存)
This commit is contained in:
parent
cb17a48cc9
commit
9ec8ab41d9
35
maxSubArray.cpp
Normal file
35
maxSubArray.cpp
Normal 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;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user