二维数组求和
承接上节课,一维数组求最大子数组,如果数组无限大,最大可以多大?
首先,建立一个文档,产生随机数组存入,第一次测试了1千的数量级,轻轻松松就过了,第二次10万,还是比较简单,只是有点慢,第三次1000万,没有问题,可能是因为我设置得随机数组都是证书,所以到现在还没有问题,不知道如果加一倍的负数会怎样,因为当我试到2000万的时候就已经溢出了。
随机数组的代码:
1 try { 2 3 FileWriter fw = new FileWriter("one.txt"); 4 BufferedWriter bw = new BufferedWriter(fw); 5 for (int i = 0; i < 10000000; i++) { 6 int n = (int) (Math.random() * 100); 7 BigInteger big=BigInteger.valueOf(n); 8 String s = n + ""; 9 bw.write(s); 10 bw.newLine(); 11 }
然后读取:
1 try { 2 FileReader fr = new FileReader("one.txt"); 3 BufferedReader bf = new BufferedReader(fr); 4 String st; 5 while ((st = bf.readLine()) != null) { 6 arrList.add(st); 7 }
剩下的代码是上次的代码,也没啥好说的。
以及这节课的新任务:
题目要求:
程序要使用的数组放在一个叫 input.txt 的文件中, 文件格式是:
数组的行数,
数组的列数,
每一行的元素, (用逗号分开)。
每一个数字都是有符号32位整数,当然,行数和列数都是正整数。
可能是我不太懂,开始没思路。
所以我就跟其他同学讨论,问他们是如何看这道题的,,,,结果是他们大多也不太懂,但还能由自己的一定的想法,我们都有自己的想法,我们思想碰撞八九不十。
然后讨论如何求出来:
首先就浮想出来的第一个简单的方法:最笨最粗暴的方法把所有的值都求出来,找最大,这很麻烦,还是免了吧,这样的思想想想就算了,懒是第一生产力,我们要懒点,
首先,这是一个二维数组,我们可以用二维数组存起来,文件读取也很简单,第一步还可以解决,