/**
二维数组 对角线输出 两个方向
例如对于数组:
{ 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 },
{ 13, 14, 15, 16 },
slash方向输出:
1
5 2
9 6 3
13 10 7 4
14 11 8
15 12
16
backslash输出:
4
3 8
2 7 12
1 6 11 16
5 10 15
9 14
13
数组的行数和列数可以不相等,但同一行的元素个数必须相等,称为"矩阵"更合适
*/
public class PrintArray {
public static void main(String[] args) {
/*// row != col:
int[][] arr = new int[][] {
{ 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 },
//{ 13, 14, 15, 16 },
};
*/
int[][] arr = new int[][] {
{ 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 },
{ 13, 14, 15, 16 },
};
slash(arr);
System.out.println("======");
backslash(arr);
}
public static void slash(int[][] arr) {
if (arr == null) {
throw new IllegalArgumentException("arr cannot be null");
}
int col = arr[0].length;
int row = arr.length;
for( int k = 0 ; k < col * 2 -1 ; k++ ) { //k代表有多少行输出,由col决定
int sum = k; //同一行的元素,行下标和列下标的和相等
for( int j = 0 ; j < col ; j++ ) {
int i = sum - j;
if(isValidIndex(i, row) && isValidIndex(j, col)) {
System.out.print( arr[i][j] + " " );
}
}
System.out.println();
}
}
public static void backslash(int[][] arr) {
if (arr == null) {
throw new IllegalArgumentException("arr cannot be null");
}
int row = arr.length;
int col = arr[0].length;
for (int k = 0; k < col * 2 - 1; k++) { //k代表有多少行输出,由col决定
int diff = col - k - 1; //同一行的元素,行下标和列下标的差相等
for (int j = 0; j < col; j++) {
int i = j - diff;
if (isValidIndex(i, row) && isValidIndex(j, col)) {
System.out.print(arr[i][j] + " ");
}
}
System.out.println();
}
}
private static boolean isValidIndex(int i, int n) {
return i >= 0 && i < n;
}
}
分享到:
相关推荐
Java 求一个3*3矩阵对角线元素之和,实现的思路主要是利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。也就计算对角线之和。计算对角线之和代码分享: for(int i = 0;i ;i ) { for(int j = 0;j ;j ...
1、由键盘对4×4的二维数组初始化,计算其两条对角线元素之和并输出。 2、通过二维数组实现杨辉三角的前10行并输出。杨辉三角形式请参考教材P153。 3、将M×N的矩阵转置成N×M的矩阵并输出。
掌握求二维数组正对角线元 素和的操作; 55 了解求二维数组最大值的元 素及下标的操作; 6 了解求二维数组所有和或所 有列的和的操作。 复习:二维数组元素引用 数据类型 数组名[行标][列标] //行标与列标都不能越界...
该资源给出了Matlab中关于三维数组的相关操作,包括:访问三维数组中的元素,取三维数组中每个二维矩阵的对角线元素,三维数组转置,对三维数组中每层的二维矩阵进行求和,对三维数组中每层的二维矩阵进行平均值计算...
本文实例为大家分享了python实现二维数组的对角线遍历,供大家参考,具体内容如下 第一种情况:从左上角出发,右下角结束 要完成的事情,就像下图: 话不多说,直接上Python实现代码与结果展示: # 输出遍历的索引...
题目:求一个3*3矩阵对角线元素之和。 程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。 def two_dimensionalArray(self): '二维数组实现求三阶矩阵的对角线元素之和' sum = 0 matrix = [...
设计一个程序,求一个4*4矩阵的对角线之和(注意包括主对角线和副对角线)?
使用JS实现二维数组的各种翻转和旋转(水平翻转,垂直翻转,对角线翻转,旋转等)等变换,提供所有源码及实例演示页面。
二维数组赋值和指针操作,二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式]。...对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素。
C语言程序设计-求5行5列矩阵的主、副对角线上元素之和;注意,两条对角线相交的元素只加一次;例如:主函数中给出的矩阵的两条对角线的和为45;
对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素。 Python中创建二维数组 Python中的列表list可以当做一维数组使用,但是没有直接的定义使用二维数组。如果直接使用a = [][]会产生SyntaxError: ...
资源共享,有什么错误和好的建议请指出 如果没资源分,我可以直接发给你)
leetcode二维数组力码 我的 LeetCode 记录 561.阵列分区I(2018.3.15 ...如果从左上角到右下角的每个对角线都具有相同的元素,则矩阵是 Toeplitz。 现在给定一个 M x N 矩阵,当且仅当矩阵是 Toeplitz 时才返回
线性规划简单对角线<二维数组处理> 采用二维数组进行对角线验证 数学上,高斯消元法(或译:高斯消去法),是线性代数中的一个算法,可用来为线性方程组求解,求出矩阵的秩,以及求出可逆方阵的逆矩阵。当用于一个...
将一个矩阵(二维数组)按对角线向右进行打印。(搜了一下发现好像是美团某次面试要求半小时手撕的题) Example: Input: [ [1,2,3,4], [5,1,2,3], [9,5,1,2] ] Output: [[4], [3, 3], [2, 2, 2], [1, 1, 1], [5, 5],...
2018/06/09 周六 20:15 623 02同行列对角线的格子.cpp 2018/06/09 周六 20:31 295 03计算矩阵边缘元素之和.cpp 2018/06/09 周六 21:21 667 04错误探测.cpp 2018/06/09 周六 21:24 870 05计算鞍点.cpp 2018/06/09 ...
C语言程序设计-在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的平方和,并在fun()函数中输出;.c
从键盘上输入矩阵的阶数n(n),然后按以下规律形成二维数组Anxn:A中第一行元素为1,2,……n;第二行元素为n+1,n2,……2n;第三+行元素为2n+1,2n+2,……3n;…… 然后计算:(1)A中所有不靠边元素之和sum1;(2)A...
在 NxN 框中计算三个中值:MR 是水平和垂直 R 像素的中值,MD 是对角线 D 像素的中值。 过滤后的值是两个中值和中心像素C的中值:median([MR,MD,C])。 B = HMF(A) 使用 N = 5(默认值)。 A 可以是二维数组或 RGB...