前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LintCode 795. 4种独特的路径(DFS)

LintCode 795. 4种独特的路径(DFS)

作者头像
Michael阿明
发布2020-07-13 17:09:42
5560
发布2020-07-13 17:09:42
举报
文章被收录于专栏:Michael阿明学习之路

1. 题目

一个机器人位于一个m*n的网格的左上角。 机器人可以在任何时间点移动任何方向,但是每个网格只能达到一次。机器人正试图到达网格的右下角。 有多少种可能的独特路径?

代码语言:javascript
复制
样例 1:
输入:
2 3
输出:
4

样例 2:
输入:
3 3
输出:
12

2. 解题

  • 暴力回溯即可
代码语言:javascript
复制
class Solution {
	int sum = 0;
	int r,c;
	vector<vector<int>> dir = {{1,0},{-1,0},{0,1},{0,-1}};
public:
    int uniquePaths(int m, int n) {
        if(m==0 || n==0)
        	return 0;
        r= m, c= n;
        vector<vector<int>> map(m,vector<int>(n,1));
        map[0][0] = 0;//标记走过
        dfs(map,0,0);
        return sum;
    }

    void dfs(vector<vector<int>>& map, int i, int j)
    {
    	if(i==r-1 && j==c-1)
    	{
    		sum++;
    		return;
    	}
    	int x, y;
    	for(int k = 0; k < 4; ++k)
    	{
    		x = i+dir[k][0];
    		y = j+dir[k][1];
    		if(x>=0 && x<r && y>=0 && y<c && map[x][y])
    		{
    			map[x][y]=0;//标记走过
    			dfs(map,x,y);
    			map[x][y]=1;//回溯
    		}
    	}
    }
};

100% 数据通过测试 总耗时 101 ms 您的提交打败了 81.90% 的提交!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 题目
  • 2. 解题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档