公司利润

来源:互联网 发布:java jdbc链接oracle 编辑:程序博客网 时间:2024/04/28 02:05

题意:
给出一组数,求一个区间使数和最大。
思路:
贪心,用last表示之前的和。如果last<0就不取前面的数,last=x重新计算。每次判断后max一下ans。
代码:

#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>using namespace std;int main(){    int n,ans=-999999999,last=-999999999;    scanf("%d",&n);    for(int i=1;i<=n;i++)    {        int x;scanf("%d",&x);        if(last>=0)last+=x;else last=x;        if(last>ans)ans=last;    }    printf("%d\n",ans);    return 0;}
阅读全文
0 0
原创粉丝点击