个人数组
第一:將數組首尾相連,形成循環數組,依然輸出最大子數組的和
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);}}?
轉載于:https://www.cnblogs.com/Evak/p/10585735.html
總結
- 上一篇: 性能测试四十八:Jenkins+Ant+
- 下一篇: this 相关