计算最大子数组

今天做了一下从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;
    }
}

 

posted @ 2022-03-21 22:27  李迎辉  阅读(29)  评论(0)    收藏  举报