学习进度第3周
时间 | 10小时 |
代码 | 240 |
博客 | 2 |
知识点 |
不懂得知识:在思想方面。在问题---求子数组的最大值,并且数组为环状。 在这个问题我最开始就是看不懂题目。然后在指导下知道了大概就是能够从数组的最后一个数字再读取第一个数字。如果这样的子数组是最大值那就这么取值。 但是在写代码的时候我就完全定死了思想。就一直想着读取了最后一个数字然后再读取第一个数字。其实是要把数组扩大。第1个数字等于第(n+1)就像了。这样类推。 这种把问题转换的思想我是没有的。
学会的知识:学会了二维数组的定义以及赋值。用两个for循环, |
package 数组; import java.util.Scanner; public class Test { public static void main(String [] args) { Scanner sc=new Scanner (System.in); System.out.println("请确定数组的长度:"); int n=sc.nextInt(); //-----------------输入一个数组 float [] onelist = new float [2*n]; System.out.println("请输入数组内的数字:"); for(int i=0;i<n;i++) { float num=sc.nextFloat(); onelist[i]=num; onelist[i+n]=onelist[i]; } //-------------------------------------------- float max=onelist[0];//-----------初始化max的值 for(int a=0;a<(2*n-1);a++)//------确定起始节点 { for(int b=a;b<=(2*n-1);b++)//--------确定终止节点 { float sum=0; if((b-a)<=n) { for(int c=a;c<b;c++)//---------起点到终点的和值 { sum=sum+onelist[c]; if(max<sum) { max=sum; } } } } } System.out.println("子数组最大值为:"+max); } }
博客:2篇
不懂得知识:在思想方面。在问题---求子数组的最大值,并且数组为环状。
在这个问题我最开始就是看不懂题目。然后在指导下知道了大概就是能够从数组的最后一个数字再读取第一个数字。如果这样的子数组是最大值那就这么取值。 但是在写代码的时候我就完全定死了思想。就一直想着读取了最后一个数字然后再读取第一个数字。其实是要把数组扩大。第1个数字等于第(n+1)就像了。这样类推。 这种把问题转换的思想我是没有的。
学会的知识:学会了二维数组的定义以及赋值。用两个for循环,
public static void main(String[] args) { int a[][]; int i=5,j=5; a=new int[l][h]; for(i=0;i<l;i++) { for(j=0;j<h;j++) { Random random = new Random(); a[i][j]=random.nextInt(19); a[i][j]=a[i][j]-9; System.out.print(a[i][j]); System.out.print(" "); } System.out.println(""); } }
这样就能简单的生成5-5二维随机数组。