zoukankan      html  css  js  c++  java
  • 二维数组打印

    有一个二维数组(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;
        }
    }
    

      

    
    
  • 相关阅读:
    LOJ #6183 看无可看
    BZOJ 5467 Slay the Spire
    BZOJ 5306 [HAOI2018] 染色
    BZOJ 2784 时间流逝
    BZOJ4911: [Sdoi2017]切树游戏
    min-max 容斥
    BZOJ 5475: [WC 2019] 数树
    BZOJ 2810 [Apio2012]kunai
    Codeforces round 1083
    详解大数据数据仓库分层架构
  • 原文地址:https://www.cnblogs.com/GumpYan/p/5861325.html
Copyright © 2011-2022 走看看