311课堂测试

import java.util.Random;
import java.util.Scanner;

public class Int_Test {

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请选择输入方式:1.随机数  2.输入");
        int xx=sc.nextInt();
        System.out.println("请输入数组长度:");
        int num=sc.nextInt();
        int[] n= new int[100];
        int[] x= new int[100];
        int y;
        if(xx==1) {
            for (int i = 0; i < num; i++) {
                n[i] = Randoming();
                if (i == num - 1) {
                    System.out.println(" " + n[i]);
                } else {
                    System.out.print(" " + n[i]);
                }

            }
        }
        if(xx==2){
            for(int i=0;i<num;i++){
                n[i]=sc.nextInt();
            }
        }
        for(int i=0;i<num;i++){
            for(int j=0;j<num;j++){
                if(n[j]>0){
                    x[i]+=n[j];
                }
                if(x[i]>0&&n[j]<=0){
                    int b = 0;
                    for(int k=j;k<num;k++){
                        b+=n[k];
                        if(b>0){
                            x[i]+=b;
                            j=k;
                            break;
                        }
                    }
                    i++;
                }
            }
            break;
        }
        y=0;
        for(int i=0;i<num;i++){
            if(x[i]>y){
                y=x[i];
            }
        }
        System.out.println(y);
    }

    public static int Randoming() {
        Random random=new Random();
        double x;
        x= random.nextDouble()*100;
        return (int) (x-50);
    }
}

刚开始以为是随机数,然后就有了上面的选择1/2.

要求算法复杂度为O(n),但是我的是n2,自己想确实很难想到同学们的方法,因为数据结构掌握的不是特别好。

听了同学们的思路对我自己也是很有启发的,加油!

posted on 2022-03-11 11:24  付治齐吖  阅读(26)  评论(0)    收藏  举报