最大子串和

  • 题意:
  • 给出n个数,让你输出这n个数的最大连续子序列 的左端点和右端点和最大值
  • 输入:
  • 5
  • -1 2 3 -4 9
  • 输出:
  • max= 10,L= 2,R= 5
  • 代码:
    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
      int m,l,r,start,maxx;
      int dp[100010];
      scanf("%d",&m);
      for(int i = 1;i <= m;i++)
          scanf("%d",&dp[i]);
      l = r = start = 1;
      maxx = dp[1];
      for(int i = 2;i <= m;i++)
      {
          if(dp[i-1] >= 0)
              dp[i] = dp[i-1] + dp[i];
          else
              start = i;
          if(dp[i] > maxx){
              maxx = dp[i];
              l = start;
              r = i;
          }
      }
      cout<<"max= "<<maxx<<",L= "<<l<<",R= "<<r<<endl;
      return 0;
    }
    

```

全部评论

相关推荐

dongsheng66:如果想进大厂的话,在校经历没必要占这么大篇幅,可以把专业技能单独放一个专栏写,可以加个项目经历
点赞 评论 收藏
分享
10-28 14:42
门头沟学院 Java
watermelon1124:因为嵌入式炸了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务