题解 | #连续最大和#

连续最大和

https://www.nowcoder.com/practice/5a304c109a544aef9b583dce23f5f5db

#include <stdio.h>

/*获取连续最大数组和*/
int max_sum(int *data, int a)
{
    int sum=data[0];    //连续最大数组和
    int temp_sum=data[0];   //当前和值

    for(int i=0;i<a;i++)
    {
        temp_sum=(temp_sum > 0)? temp_sum+data[i] : data[i]; 

        if(temp_sum>sum)    //经过一次运算后,判断是否需要替换掉最大值
            sum=temp_sum;
    }
    return sum;
}

int main() 
{
    int a;
    scanf("%d",&a);
    int data[a];
    for(int i=0;i<a;i++)
    {
        scanf("%d",&data[i]);
    }
    
    int max=max_sum(data, a);
    printf("%d\n",max);

    return 0;
}

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务