题解 | 递归解法 #蛇形矩阵#

蛇形矩阵

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 line = Integer.parseInt(in.nextLine());
        int[][] ints = new int[line][line];
        // ints[0][0] = 1;
        int[][] row = row(ints, 1, 0, 0, line);
        for (int x = 0; x < line; x++) {
            for (int y = 0; y < line; y++) {
                int num = row[x][y];
                if (num != 0) {
                    System.out.print(num + " ");
                }
            }
            System.out.println();
        }
    }

    public static int[][] row(int[][] ints, int num, int x, int y, int lines) {
        // x轴大于一维数组长度时终止递归
        if (x >= lines) {
            return ints;
        }
        ints[x][y] = num;
        if (x == 0) {
            // x等于0时表示表示已经移动到最顶端
            // 移动路线从(x,0)移动到(0,y)
            // 将x轴向下移动一行,y轴归零,继续递归
            x = y + 1;
            y = 0;
        } else {
            // 每次递归时从左下角向右上角移动
            x--;
            y++;
        }
        row(ints, ++num, x, y, lines);
        return ints;
    }
}


全部评论

相关推荐

06-27 12:30
延安大学 C++
实习+外包,这两个公司底层融为一体了,如何评价呢?
一表renzha:之前面了一家外包的大模型,基本上都能答出来,那面试官感觉还没我懂,然后把我挂了,我都还没嫌弃他是外包,他把我挂了……
第一份工作能做外包吗?
点赞 评论 收藏
分享
就在我现在公司的隔壁每天经过都唏嘘不已(就是羡慕)什么时候可以到这里上班啊
柯基在debug:从大学毕业投简历到现在了,应届的时候我都面到终面了,现在工作四年了连简历初筛都过不了了
投递莉莉丝游戏等公司8个岗位
点赞 评论 收藏
分享
叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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