题解 | #蛇形矩阵#

蛇形矩阵

https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int lev = in.nextInt();
        int number = 1;
        // 申明一个2维数组,数组的长度是录入的长度lev
        // 数组内的值默认都是0,我们只需要给对应的位置赋值就行
        // 数组的索引位置大致如下
        // 因为是蛇形矩阵,所以我们每次循环遍历的赋值的顺序大致如下,
        // 第一个可以理解二维数组的x,第二位为二维数组的y:array[x][y]
        // 第一次遍历:
        // 00
        // 第二次遍历:
        // 00 01
        // 10
        // 第三次遍历
        // 00 01 02
        // 10 11
        // 20
        // 第四次遍历
        // 00 01 02 03
        // 10 11 12
        // 20 21
        // 30
        // 通过观察发现,每次遍历x+y的值都等于遍历的次数,
        // 例如第三次遍历的值为20,11,02的合都是3,
        // 同时发现每次都是x-1,y+1    
        int[][] array = new int[lev][lev];
        int x = 0;
        int y = 0;
        for (int i = 0; i < lev; i++) {
            array[x][y] = number++;
            while (x - 1 >= 0) {
                x--;
                y++;
                array[x][y] = number++;
            }
            y = 0;
            x = i + 1;

        }
        for (int[] as : array) {
            for (int i : as) {
                if (i == 0) {
                    break;
                }
                System.out.print(i + " ");
            }
            System.out.println();
        }
    }
}

全部评论

相关推荐

Gardenia06...:刚开始学是这样的,可以看看左神和灵神都讲的不错
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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