计算最大子数组
今天做了一下从txt文档中获取数据并且计算最大数组的和,以及比如行数,列数输出错误和数值溢出等特殊情况的解决
package lianxi; import java.io.File; import java.io.BufferedReader; import java.io.IOException; import java.io.FileReader; public class lianxi { public static void main(String [] args) throws IOException { BufferedReader f=new BufferedReader(new FileReader("C:\\Users\\LLL\\Desktop\\input.txt")); String a,b; int max=0 ,i,j,num=0; a=f.readLine(); b=f.readLine(); String[] row0 = a.split(","); String[] column0 = b.split(","); int row=change(row0[0]); int column=change(column0[0]); for(i=0;i<row;i++) { String []shuju1=f.readLine().split(","); int []shuju=new int [shuju1.length]; if(column!=shuju.length) { System.out.println("数据列数错误"); System.exit(0); } for(j=0;j<shuju.length;j++) { shuju[j]=change(shuju1[j]); } max=shuju[0]; for(j=0;j<shuju.length;j++) { if((2147483647-num)<shuju[j]) { System.out.println("数据过大,请减少数据,重新计算。"); System.exit(0); } num+=shuju[j]; if(max<num) max=num; } } if(f.readLine()!=null) { System.out.println("数据行数出错"); System.exit(0); } System.out.println("MAX="+max); } public static int change(String str) { int a=0; try { a = Integer.parseInt(str); } catch (NumberFormatException e) { e.printStackTrace(); } return a; } }
                    
                
                
            
        
浙公网安备 33010602011771号