题解 | #二维数组打印#

二维数组打印

https://www.nowcoder.com/practice/6fadc1dac83a443c9434f350a5803b51

import java.util.*;

public class Printer {
    /**
     * 二维数组
     *
     * 举例子找规律
     * 
     *   0  1  2  3
     * 0 1  2  3  4
     * 1 5  6  7  8
     * 2 9  10 11 12
     * 3 13 14 15 16
     * 
     * 返回值 [4,3,8,2,7,12,1,6,11,16,5,10,15,9,14,13], 坐标依次如下:
     * 
     * 03
     * 02 13
     * 01 12 23
     * 00 11 22 33
     * 10 21 32
     * 20 31
     * 30
     *
     * @param arr
     * @param n
     * @return
     */
    public int[] arrayPrint(int[][] arr, int n) {
        int[] result = new int[n*n];

        int k = 0;
        for(int i=0,j=n-1; i<n&&j<n;){
            for(int p=i,q=j; p<n&&q<n; p++,q++){
                result[k++] = arr[p][q];
            }
            if(j > 0){
                j--;
            }else{
                i++;
            }
        }

        return result;
    }
}

全部评论

相关推荐

11-03 12:40
中山大学 Java
勇敢的突尼斯海怪选钝...:楼主这拒意向话术好得体呀 !求问HR回复态度咋样呀
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务