Leetcode Maximum Subarray 相关代码,本方法使用dp算法完成,代码使用c++实现,并提供相关测试。
这个算法,我相当喜欢,以O(n)的时间完成相关操作,简直!!!Awesome!!!
#include <iostream>
#include <vector>
using namespace std;
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int maxNum = nums[0];
int limit = 0;
for (int i = 0; i < nums.size(); i ++) {
limit += nums[i];
if (limit > maxNum) {
maxNum = limit;
}
if (limit < 0) {
limit = 0;
}
}
return maxNum;
}
};
int main() {
vector<int> a;
a.push_back(-1);
a.push_back(-2);
a.push_back(-3);
a.push_back(4);
a.push_back(-1);
a.push_back(2);
a.push_back(1);
a.push_back(-5);
a.push_back(-4);
Solution *so = new Solution();
int re = so->maxSubArray(a);
cout<<"the result is: "<<re<<endl;
}