• 一维数组单执行


    package shuzu;
    import java.io.BufferedReader;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Scanner;
    public class Test {
        public static void main(String[] args) throws IOException {
            Scanner sc = new Scanner(System.in);
            try{
                FileWriter fw =new FileWriter("a.txt");
            //随机数
            for(int i=0;i<100;i++) {
                long x=(long)(Math.random()*100)*(Math.random()>0.5?1:-1);
                String y=""+x;
                fw.write(y);
                fw.write("
    ");
               // System.out.println(y);
            }
            fw.close();}
            catch(FileNotFoundException e){
                e.printStackTrace();
            }
    
            ArrayList<String> arrList = new ArrayList<>();
            try {
                FileReader fr = new FileReader("a.txt");
                BufferedReader bf = new BufferedReader(fr);
                String st;
                while ((st = bf.readLine()) != null) {
                    arrList.add(st);
                }
                bf.close();
                fr.close();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        long a[] = new long[arrList.size()];
        for (int i = 0; i <arrList.size(); i++) {
            //数组转移
            String s=arrList.get(i);
            a[i] = (long) Double.parseDouble(s);
            }
        
        long max=a[0];
        long sum=a[0];
        
        System.out.println("1.直接执行 2.单步执行");
        int m=sc.nextInt(); 
        switch(m) {
        case 1:{
            for(int i=1;i<a.length;i++) {
                if(sum<0)
                    sum=a[i];
                else 
                    sum+=a[i];
                if(sum>max)    max=sum;
                System.out.print("当前子数组和最大值为"+max);
                System.out.println("当前检查到第"+(i+1)+"位");  
                System.out.println();
            }
            System.out.println("最大子数组和:"+max);
            }break;
        case 2:
        {
            for(int i=1;i<=a.length;i++) {
                if(sum<0)
                    sum=a[i];
                else 
                    sum+=a[i];
                if(sum>max)    max=sum;
                System.out.print("当前子数组和最大值为"+max);
                System.out.println("当前检查到第"+i+"位");
                System.out.println();
                System.out.println("1.继续2.回滚");
                int n = sc.nextInt();  
                switch(n) {
                case 1:break;
                case 2:{
                     long max1=a[0];
                     long sum1=a[0];
                    System.out.println("输入位数");
                    int j=sc.nextInt();
                    for(int k=1;k<=j;k++) {
                        if(sum1<0)
                            sum1=a[k];
                        else 
                            sum1+=a[k];
                        if(sum1>max1)    max1=sum1;
                }
                    System.out.print("当前子数组和最大值为"+max1);
                    System.out.println("当前检查到第"+j+"位");
                }break;
            }
            }System.out.println("最大子数组和:"+max);
        }
       }
      }
    }
  • 相关阅读:
    Swagger文档项目配置
    时间格式转换和加一天操作
    Mysql 主从复制
    Nginx简单记录
    Linux Nginx
    obsidian插件Advanced Uri常用配置路径汇总
    react图片查看器插件imagesviewerreact与useRef的爱与恨
    DRF中serializer的中的模型字段解释
    Codeforces Round #787 (Div. 3)ABCD
    THUPC 2022 游记
  • 原文地址:https://www.cnblogs.com/zmh-980509/p/10771278.html
Copyright © 2020-2023  润新知