1 条题解

  • 0
    @ 2024-12-24 9:49:25

    C++ :

    #include <iostream>
    using namespace std;
    int b[1005], a[1005];
    const int INF = 1000000000;
    int main(){
        int n, MAX;
        while(cin >> n && n){
          b[0] = 0;
          MAX = -INF;
          for(int i = 1; i <= n; ++i){
            cin >> a[i];
            b[i] = a[i]+b[i-1];
          }
          for(int i = 0; i < n; ++i)
            for(int j = i+1; j <= n; ++j)
              if(b[j]-b[i] > MAX)
                MAX = b[j]-b[i];
          cout << MAX << endl;
        }
        return 0;
    }
    
    

    Java :

    import java.util.Scanner;
    public class Main{
        public static void main(String args[]){
            Scanner in=new Scanner(System.in);
            while(in.hasNext()){
                int n=in.nextInt();
                if(n==0) break;
                int a[]=new int[n];
                for(int i=0;i<n;i++){
                    a[i]=in.nextInt();
                }
                int sum=a[0];
                for(int i=0;i<n;i++){
                    if(a[i]>sum) sum=a[i];
                }
                for(int i=0;i<n;i++){
                    for(int j=n-1;j>i;j--){
                        int add=a[i];
                        for(int k=i;k<j;k++){
                            add+=a[k+1];
                            if(add>=sum)
                                sum=add;
                        }
                    }
                }
                System.out.println(sum);
            }
        }
    }
    
    • 1

    信息

    ID
    930
    时间
    5000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者