• 个人数组


    第一:将数组首尾相连,形成循环数组,依然输出最大子数组的和

    package max1;
    import java.util.Scanner;
    import java.io.*;
    import java.math.BigDecimal;
    public class zdh {
    
        public static void main(String[] args) throws Exception{
            FileWriter out = new FileWriter("D:\array.txt");
    int []b=new int[4];
    for(int i=0;i<4;i++)
    {b[i]=(int)(-9+Math.random()*20);}
         for(int i=0;i<4;i++)
         {
     out.write(b[i]+" ");
            }
            out.close();        
            BufferedReader br = null;
            try {
                br = new BufferedReader(new FileReader("D:\array.txt"));
            } catch (FileNotFoundException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
            String s="";
            String s1;
            try {
                while((s1=br.readLine())!=null)
                {
                s=s+s1;
                }
            } catch (IOException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        String [] data=s.split(" ");
            int []a=new int [data.length];
            //将String类型数组转成int类型
            for(int j=0;j<data.length;j++)
            {
            a[j]=Integer.parseInt(data[j]);
            }
            /*for(int i=0;i<a.length;i++)
            {
            System.out.print(a[i]+" ");
            }*/
        if(a.length>60000)
            throw new Exception("数量过多");
            // TODO 自动生成的方法存根
                  findmax(a);
        }
        public static void findmax(int a[])
        {        
             Scanner sc= new Scanner(System.in);
             int sum=0;
             int max=0;
             int s=0;
             int e=0;
                int []c=new int[3];
                int []d=new int[7];
                for(int i=0;i<3;i++)
                {
                    c[i]=a[i];
                }
                for(int i=0;i<4;i++)
                {
                    d[i]=a[i];
                }
                for(int i=4;i<7;i++)
                {
                    d[i]=c[i-4];
                }
                 for(int i=0;i<7;i++)
                 {
                     System.out.println(d[i]);
                 }
                
             for(int i=0;i<7;i++)
             {
                 sum=sum+d[i];
             if(sum<0)
             { sum=0;
              s=i+1;
                     }
             if(sum>max)
             {
                 max=sum;
             e=i+1;
             }
             }
             System.out.println(s);
             System.out.println(e);
             if((e-s)>4)
            
             System.out.println(max);
        }
        
    }
  • 相关阅读:
    keep-alive的深入理解与使用(配合router-view缓存整个路由页面)
    vue无法自动打开浏览器
    解决vue页面刷新或者后退参数丢失的问题
    vue 跳转并传参,实现数据实时更新
    Struts2 有关于无法正常的使用通配符
    有关于java反编译工具的使用
    Action名称的搜索顺序
    Struts2 的 值栈和ActionContext
    在Action 中访问web资源
    oracle 创建database Link
  • 原文地址:https://www.cnblogs.com/Evak/p/10585735.html
Copyright © 2020-2023  润新知