动态规划——53. 最大子序和

动态规划——53. 最大子序和

题目:

动态规划——53. 最大子序和

思路:

  1. dp数组的定义:dp[n] 代表在nums[n]时的最大子序和。

  2. base_case:dp[0] = nums[0]

  3. 状态转移方程:dp[i] = max(nums[i], dp[i-1]+nums[i])

    设置一个res存储最大自序和。

代码:

class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int n = nums.size();
        int dp[n];
        dp[0] = nums[0];
        int result = dp[0];
        for (int i=1; i<n;i++){
            dp[i] = max(dp[i-1]+nums[i],nums[i]);
            result = max(result, dp[i]);
        }
        return result;

    }
};

Rank:

动态规划——53. 最大子序和

Tips:

上一篇:剑指 Offer 53 - II. 0~n-1中缺失的数字 + 二分法


下一篇:C语言编程练习53:静态链表