diff --git a/maxSubArray.cpp b/maxSubArray.cpp new file mode 100644 index 0000000..87ba77d --- /dev/null +++ b/maxSubArray.cpp @@ -0,0 +1,35 @@ +#include +#include +#include + +using namespace std; + +class Solution { +public: + int maxSubArray(vector& nums) { + if(nums.size()==1){ + return nums[0]; + } + else{ + int max_num = *max_element(nums.begin(),nums.end()); + vector> dp; + dp.push_back(nums); + for(int i = 1;i < nums.size();i++){ + dp.push_back(vector(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 array = {-2,1,-3,4,-1,2,1,-5,4}; + cout << mysolution.maxSubArray(array); + return 0; +}