目錄
1.題目
2.代碼
1.題目
給你一個整數數組?nums
?,請你找出一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。
子數組是數組中的一個連續部分。
示例 1:
輸入:nums = [-2,1,-3,4,-1,2,1,-5,4] 輸出:6 解釋:連續子數組?[4,-1,2,1] 的和最大,為?6 。
示例 2:
輸入:nums = [1] 輸出:1
示例 3:
輸入:nums = [5,4,-1,7,8] 輸出:23
提示:
1 <= nums.length <= 105
-104 <= nums[i] <= 104
2.C++代碼
class Solution {
public:int maxSubArray(vector<int>& nums) {int n = nums.size();int maxx = nums[0];int dp[n];memset(dp,0,sizeof(dp));dp[0] = nums[0];for(int i=1;i<n;i++){dp[i] = max(dp[i-1]+nums[i],nums[i]);maxx = max(maxx,dp[i]);}return maxx;}
};