zoukankan      html  css  js  c++  java
  • 1007 Maximum Subsequence Sum

    #include <iostream>
    #include<string> 
    #include<stdio.h>
    #include<vector>
    using namespace std; 
    /* run this program using the console pauser or add your own getch, system("pause") or input loop */
    
    int main(int argc, char** argv) {
        int n; 
        cin>>n;
        vector<int>v(n);
        int sum = -1,l=0,r=n-1,tmpl=0,tmpr=0,tmpSum=0;
        for(int i = 0; i < v.size(); i++){
            scanf("%d",&v[i]);
                tmpSum += v[i];
                tmpr = i;
                if(tmpSum < 0){
                    tmpSum = 0;
                    tmpr = tmpl = i+1;
                }
                else if(tmpSum > sum){
                    sum = tmpSum;
                    l = tmpl;
                    r = tmpr;
                }
                
        }
        if(sum<0)sum=0; 
        printf("%d %d %d",sum ,v[l] ,v[r]);
        return 0;
    }

    细节:  1.全为负数的数列,不跟新sum 和l,r  所以初始化为 l = 0, r = n-1;

          2. 考虑到可能有只有零和负数的数列,此时最大值为0,但是l 和r需要更新,所以sum 初始值为-1而不是零

  • 相关阅读:
    浏览器兼容性问题
    浏览器对象的属性和方法
    js总结体会
    css样式总结体会
    HTML标签类总结
    如何自动化实现二级域名访问,类似博客
    php
    require.js
    gulp
    javascript
  • 原文地址:https://www.cnblogs.com/zxzmnh/p/12434954.html
Copyright © 2011-2022 走看看