美文网首页
蛇形矩阵

蛇形矩阵

作者: packet | 来源:发表于2019-03-04 20:04 被阅读0次

是道老题了。凭着印象写,代码技巧是:先判断,后移动。

public class Snake {

    static int[][] arr;

    public static void print(int x, int y) {
        arr = new int[x][y];
        final int key = x * y;
        int i = 0;
        int j = -1;
        int cnt = 1;
        while (cnt <= key) {
            while (j + 1 < y && arr[i][j + 1] == 0) {
                arr[i][++j] = cnt++;
            }
            while (i + 1 < x && arr[i + 1][j] == 0) {
                arr[++i][j] = cnt++;
            }
            while (j - 1 >= 0 && arr[i][j - 1] == 0) {
                arr[i][--j] = cnt++;
            }
            while (i - 1 >= 0 && arr[i - 1][j] == 0) {
                arr[--i][j] = cnt++;
            }
        }

        for (int k = 0; k < arr.length; k++) {
            System.out.println(Arrays.toString(arr[k]));
        }

    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int x = scanner.nextInt();
            int y = scanner.nextInt();
            print(x, y);
        }
    }
}

相关文章

  • 蛇形矩阵

    java实现“之“字型矩阵 思路: 分为左上角、右下角、中间三部分,其中左上角和右下角和为N*N + 1,中间一部...

  • 蛇形矩阵

    是道老题了。凭着印象写,代码技巧是:先判断,后移动。

  • 1160 蛇形矩阵

    题目描述 Description 小明玩一个数字游戏,取个n行n列数字矩阵(其中n为不超过100的奇数),数字的填...

  • 蛇形矩阵 输出

    有的时候零零碎碎的东西太多,总归是需要找个地方来记录一下。大神们有个Git、CSDN,我就先在这里水一下吧,就只当...

  • 算法:蛇形矩阵

    偶然看到蛇形矩阵的算法题,觉得比较有趣,想了想,解出来了,并且对算法有了一个新的感知,先看看题目吧,后面谈谈对算法...

  • Tip | 蛇形矩阵

    输入一个数字i,需要返回的内容如下: 输入一个数字i,输出结果的矩阵是i行i列的。矩阵从右上角开始,从1开始往下,...

  • codevs 1160 蛇形矩阵

    康复1。 2016/01/08 7:58:25稚嫩的自己的代码: 感觉不是自己写的。怎么这么复杂啊。不过思路值得借...

  • 【Java】小议蛇形矩阵

    描述: 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 输入正整数n(n不大于100)输出,输出一个n行...

  • 756. 蛇形矩阵

    输入两个整数n和m,输出一个n行m列的矩阵,将数字 1 到 n*m 按照回字蛇形填充至矩阵中。 具体矩阵形式可参考...

  • 华为机试 HJ35 蛇形矩阵

    HJ35 蛇形矩阵[https://www.nowcoder.com/practice/649b210ef4444...

网友评论

      本文标题:蛇形矩阵

      本文链接:https://www.haomeiwen.com/subject/qdrwuqtx.html