题解 | #迷宫问题#

迷宫问题

https://www.nowcoder.com/practice/cf24906056f4488c9ddb132f317e03bc

#include <stdio.h>

int map[11][11];//地图
int n, m; //地图规模
int trace[101][2];//记录路径

//允许的方向
int dx[4] = {0, 0, 1, -1};
int dy[4] = {1, -1, 0, 0};

void dfs(int x, int y, int cnt) { //cnt指走了几步路
    if (map[n - 1][m - 1] == 2) {
        for (int i = 0; i < cnt; i++) {
            printf("(%d,%d)\n", trace[i][0], trace[i][1]);
        }
        return;
    }
    //四个方向
    for (int i = 0; i < 4; i++) {
        int xx = dx[i] + x;
        int yy = dy[i] + y;
        //边界
        if (xx >= 0 && yy >= 0 && xx < n && yy < m && map[xx][yy] == 0) {
            map[xx][yy] = 2;
            trace[cnt][0] = xx;
            trace[cnt][1] = yy;
            dfs(xx, yy, cnt + 1);
            map[xx][yy] = 0;
        }
    }
}

int main() {
    scanf("%d%d", &n, &m);
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            scanf("%d", &map[i][j]);
        }
    }
    //0-没走过 1-墙 2-可达
    trace[0][0] = trace[0][1] = 0;
    map[0][0] = 2;
    dfs(0, 0, 1);

    return 0;

}

全部评论

相关推荐

简历求拷打,海投简历发过去就已读不回了求大佬们指点
程序员牛肉:基本不能了,估计你得放弃秋招,九月份找实习之后明年的春招开始正式找工作
点赞 评论 收藏
分享
Rena1ssance_:对的,要是面评没太烂,勤更新简历等捞就行了,腾讯可以无限复活
点赞 评论 收藏
分享
叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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