码迷,mamicode.com
首页 > 其他好文 > 详细

53. 最大子序和

时间:2020-09-14 18:56:49      阅读:18      评论:0      收藏:0      [点我收藏+]

标签:ret   i++   https   href   位置   ++   tps   subarray   ref   

53. 最大子序和

int maxSubArray(int* nums, int numsSize){
    if(numsSize==0)
        return 0;
    if(numsSize==1)
        return nums[0];
    int *dp=(int *)malloc(sizeof(int)*numsSize);
    dp[0]=nums[0];
    for(int i=1;i<numsSize;i++)
    {
        dp[i]=(dp[i-1]+nums[i])>nums[i]?(dp[i-1]+nums[i]):nums[i];
    }
    int max=dp[0];
    for(int j=1;j<numsSize;j++)
    {
        if(max<dp[j])
        {
            max=dp[j];
        }
    }
    return max;
}

  

本难点在于找到状态转移方程,

dp[i] - 表示到当前位置 i 的最大子序列和

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

初始化:dp[0] = nums[0]

53. 最大子序和

标签:ret   i++   https   href   位置   ++   tps   subarray   ref   

原文地址:https://www.cnblogs.com/KIROsola/p/13595566.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!