ブラシの質問-Leetcode-面接の質問16.17。連続シーケンス(動的計画法)

インタビューの質問16.17。連続シーケンス

トピックリンク

出典:LeetCode
リンク:https://leetcode-cn.com/problems/contiguous-sequence-lcci/

タイトル説明

整数配列が与えられた場合、合計が最大の連続シーケンスを見つけて、合計を返します。

例:

入力:[-2,1、-3,4、-1,2,1、-5,4]
出力:6
説明:連続するサブ配列[4、-1,2,1]の合計が最大です、これは6です。

トピック分析

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

おすすめ

転載: blog.csdn.net/qq_42771487/article/details/113634288
おすすめ