二维数组打印

Posted Gump Yan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二维数组打印相关的知识,希望对你有一定的参考价值。

有一个二维数组(n*n),写程序实现从右上角到左下角沿主对角线方向打印。

给定一个二位数组arr及题目中的参数n,请返回结果数组。

测试样例:
[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]],4
返回:[4,3,8,2,7,12,1,6,11,16,5,10,15,9,14,13]

分析:首先明确二维数组的一些知识点:
数组值arr[x][y]表示指定的是第x行第y列的值。
在使用二维数组对象时,注意length所代表的长度,
数组名后直接加上length(如arr.length),所指的是有几行(Row)
指定索引后加上length(如arr[0].length),指的是该行所拥有的元素也就是列(Column)数目
import java.util.*;

public class Printer {
    public static void main(String[] args){
        int[][] arr = {{1,2,3,4},  
                    {5,6,7,8},  
                    {9,10,11,12},  
                    {13,14,15,16}};  
        System.out.print(arrayPrint(arr,4));
    }
    public static int[] arrayPrint(int[][] arr, int n) {
        int[] temp=new int[n*n];//构建一个一维数组存放返回的结果数组
        int k=0;
        for(int i=1;i<=2*arr.length-1;i++){
            if(i<=arr.length){
                for(int j=i;j>0;j--){
                    temp[k]=arr[i-j][arr.length-j];
                    k++;
                }
            }
            if(i>arr.length){
                for(int j=i-arr.length;j<=arr.length-1;j++){
                    temp[k]=arr[j][arr.length-(i-j)];
                    k++;
                }
            }
        }
        return temp;
    }
}

  

以上是关于二维数组打印的主要内容,如果未能解决你的问题,请参考以下文章

C 语言二级指针作为输入 ( 二维数组 | 抽象业务函数 | 二维数组打印函数 | 二维数组排序函数 )

在python中打印一个二维数组

以矩阵格式打印出二维数组

算法——Z形打印二维数组

用二维数组打印出杨辉三角

为啥这个数组到二维数组布尔值是真的?