二维数组的概念和使用方法 简述版
看完老师讲的这节,感觉云里雾里,搞不清二维数组的本质(小白),从网上参考一偏详解终有所悟。
二维数组
其实就是数组的数组,二维数组的每一个元素都是一个一维数组。(无论每个元素多长,都看作一个一维数组,整体性思维)
举个栗子:
int [][] bob = new int [3][5] ;---意思是定义了一个整形的二维数组,其中包含有3个一维数组,每个一维数组可以储存最长5个整数;
杨辉三角代码:
//从控制台获取行数
Scanner s = new Scanner(System.in);
int row = s.nextInt();
//根据行数定义好二维数组,由于每一行的元素个数不同,所以不定义每一行的个数
int[][] arr = new int[row][];
//遍历二维数组
for(int i = 0; i < row; i++){
//初始化每一行的这个一维数组
arr[i] = new int[i + 1];
//遍历这个一维数组,添加元素
for(int j = 0; j <= i; j++){
//每一列的开头和结尾元素为1,开头的时候,j=0,结尾的时候,j=i
if(j == 0 || j == i){
arr[i][j] = 1;
} else {//每一个元素是它上一行的元素和斜对角元素之和
arr[i][j] = arr[i -1][j] + arr[i - 1][j - 1];
}
System.out.print(arr[i][j] + "\t");
}
System.out.println();
}
结果:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
杨辉三角用二维数组的理解:
arr[i][j] = arr[i -1][j] + arr[i - 1][j - 1]
参考资料于:博客园 --坚持到底gl