首页 > 其他分享 >矩阵中的路径

矩阵中的路径

时间:2023-02-15 10:36:07浏览次数:37  
标签:return int 路径 矩阵 dfs board word size

问题:矩阵中的路径剑指 Offer 12. 矩阵中的路径 - 力扣(LeetCode)

思路:DFS+剪枝;

首先可以从矩阵中的任何一点出发进行搜索;时间复杂度O(MN);

从某个board[ i ][ j ]出发,判断它的四个方向;下 、上、右、 左,走过的点标记为 ' \0 ' ,用来防止重复访问;因此至多只有三个方向可以走,但是通写成四个dfs,用 || 连接;

board[ i ][ j ] == word[ k] 就继续寻找下一个点;

直到 k == word.size() -1;完全匹配时 进行回溯,并将标记的点还原为原来的值;

 时间复杂度:O(MN 3^k); 空间复杂度:O(K).

class Solution {
public:
    bool exist(vector<vector<char>>& board, string word) {
        row = board.size();
        col = board[0].size();
        for(int i = 0; i < row; ++i){
            for(int j = 0; j< col;++j){
                if(dfs(board,word,i,j,0)) return true;//从一个点开始dfs;匹配失败就进行下一次dfs
            }
        }
        return false;
    }
private:
    int row,col;
    bool dfs(vector<vector<char>>& b, string w, int x,int y,int k){
        if(y >= col || y <0 || x < 0 || x >= row || b[x][y] != w[k]) return false;
        if(k == w.size() -1) return true;
        b[x][y] = '\0';
        bool res = dfs(b,w,x+1,y,k+1)||dfs(b,w,x-1,y,k+1)||
                    dfs(b,w,x,y+1,k+1)||dfs(b,w,x,y-1,k+1);
        b[x][y] = w[k];
        return res;
    }
};

 

标签:return,int,路径,矩阵,dfs,board,word,size
From: https://www.cnblogs.com/xuan01/p/17121030.html

相关文章

  • 使用part.write抛出的异常 IOException:Unexpected output data (外层)和 sun.nio.fs.Win
    原因是我要测试文件上传到h20230214_2_war_exploded工程目录的upload目录下,一开始没有创建upload这个目录,我以为它会自己创建,因为之前使用输出流都是会自己创建没有的目录......
  • 矩阵树定理
    没有证明,快逃。概念矩阵树定理,用于一类图论问题的生成树计数。通常给出一个有向图或无向图,需要求出图中的内向生成树/外向生成树/生成树的个数/权值乘积之和等......
  • The Unique MST(最小生成树的唯一路径)
    最小生成树唯一的路径就是当前权值里,仅有一条路可以走,不存在最小权值一样的情况,如:122,232,132,第一次路径为1—2权值为2,但当下一次到3这个点时就存在分歧,因为1—3的权......
  • 玩转矩阵
    玩转矩阵简介:输入一个整数n,写一个n*n的矩阵,输出矩阵的环形矩阵,顺时针矩阵,逆时针矩阵。输入:n;输出:三个矩阵;样例输入;4样例输出;环形矩阵:123412131451......
  • 7-5 堆中的路径 (25 分)
    7-5 堆中的路径 (25 分)将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。输入格式:每组测试第1行包含2个正整数N和......
  • Spring IOC官方文档学习笔记(十)之类路径扫描与组件管理
    1.@Component注解与其衍生注解(1)在Spring中,@Component注解用于说明某个类是一个bean,之后Spring在类路径扫描过程中会将该bean添加至容器中;@Component注解还有很多衍......
  • 找到抓手,用对方法,中电金信关于金融机构数据治理建设路径分享
    前言——在数据管理领域,中电金信是最早一批提供金融业数据管理解决方案的科技公司,见证了金融数据管理的整个发展过程,在二十多年来的实践中沉淀出一套完整的数据治理方法论。......
  • 1138.alphabet-board-path 字母板上的路径
    问题描述1138.字母板上的路径解题思路考虑到'z'单独在一个地方,因此移动顺序中,左下、右上不能反过来,即不能先往下再往左或者先往右再往上。代码classSolution{publi......
  • hamilton路径-图论算法模板
    什么是哈密尔顿路径哈密顿图(哈密尔顿图)(英语:Hamiltoniangraph,或Traceablegraph)是一个无向图,由天文学家哈密顿提出,由指定的起点前往指定的终点,途中经过所有其他节点且只经过......
  • axios的第二种写法,把请求路径抽离到一个文件
    utils/http.jsimportaxiosfrom'axios';importqsfrom'qs';import{VALID_LOGIN}from'_config/url'importcontextfrom'../main.js'importrouterfrom'........