[LeetCode]53. Maximum Subarray

来源:互联网 发布:数据库如何检索字符串 编辑:程序博客网 时间:2024/06/06 18:58

[LeetCode]53. Maximum Subarray

题目描述

这里写图片描述

思路

动态规划
构建dp数组,保存到当前数时的最大和,同时维护更新最大值
最后返回最大值即可

代码

#include <iostream>#include <vector>#include <algorithm>using namespace std;class Solution {public:    int maxSubArray(vector<int>& nums) {        vector<int> dp;        dp.push_back(nums[0]);        int res = nums[0];        for (int i = 1; i < nums.size(); ++i) {            int temp = nums[i] + (dp[dp.size() - 1] > 0 ? dp[dp.size() - 1] : 0);            res = max(temp, res);            dp.push_back(temp);        }        return res;    }};int main() {    vector<int> nums = { -2,1,-3,4,-1,2,1,-5,4 };    Solution s;    cout << s.maxSubArray(nums) << endl;    system("pause");    return 0;}
0 0