剑指 Offer 12. 矩阵中的路径

c#仿热血江湖 Int32_1 = (int) table.Rows[i]["FLD_初级附魂"],Int32_2 = (int) table.Rows[i]["FLD_中级附魂"],Int32_3 = (int) table.Rows[i]["FLD_是否绑定"],Int32_0 = (int) table.Rows[i]["FLD_进化"],Form1.smethod_1(2, "加载百宝阁物品----没有百宝阁数据");Form1.smethod_1(2, "加载物品商店----没有物品数据"); 阅读详情

剑指 Offer 12. 矩阵中的路径

原题

剑指 Offer 12. 矩阵中的路径

思路

这个题主要是DFS,注意边界判断

代码

class Solution {
public:
    int xIndex[4] = {-1, 0, 0, 1};
    int yIndex[4] = {0, -1, 1, 0};
    bool exist(vector<vector<char>>& board, string word) {
        int m = board.size(), n = board[0].size();
        vector<vector<bool>> visit(m, vector<bool> (n));
        for (int i = 0; i < m; i++) {
            for(int j = 0; j < n; j++){
               bool ans = dfs(visit, board, word, 0, i, j);
               if (ans) return true;
            } 
        }
        return false;
    }
    bool dfs(vector<vector<bool>>& visit, vector<vector<char>>& board, string word, int nowIndex, int x, int y){
        if (board[x][y] != word[nowIndex]) return false;
     	else if (nowIndex == word.length()-1) {
            return true;
        } 
        visit[x][y] = true;
        bool result = false;
        for (int i = 0; i < 4; i++){
            if(x+xIndex[i] >= 0 && x+xIndex[i] < board.size() && y+yIndex[i] >=0 && y+yIndex[i] < board[0].size()) {
                if(!visit[x+xIndex[i]][y+yIndex[i]] ) {
                    bool flag = dfs(visit, board, word, nowIndex+1, x+xIndex[i], y+yIndex[i]);
                    if (flag) {
                    	result = true;
                     	break;
			    	}
                } 
            }
        }
        visit[x][y] = false;
        return result; 
    }
};

运行截图

在这里插入图片描述

收获

  • DFS题一定要注意边界条件和判断条件
  • 判断条件一般放进dfs函数里,第一个判断最好也放进去
  • dfs一般的模板:
 bool  dfs(参数) {
      if 不满足条件 : return false;
      else if 满足: return true;
      visited[i]=true;
      bool result=dfs(next);
      visited[i]=false;
      return result;
   }
   
  • 二维动态数组可以这样初始化:vector<vector<int>> visited(m, vector<int> (n));
  • 方向可以用pair这么写:
 vector<pair<int, int>> directions{{0, 1}, {0, -1}, {1, 0}, {-1, 0}};

使用的时候:

for (auto dir:directions ) {
    newi = i + dir.first; newj = j + dir.second;
}
在 SAP S/4HANA Public Cloud 中做产品扩展:从 Key User 到 ABAP Cloud 与 BTP 的三轨实践指南 摘要:SAP S/4HANA Public Cloud 提供三种扩展方式(key user、developer extensibility 和 side-by-side),遵循 clean core 原则确保升级稳定。key user 扩展适合无代码轻量改良,developer extensibility 用于受控 ABAP 开发,side-by-side 则适用于云原生独立应用。文章通过销售订单优先级字段、退货审批微服务和采购校验等案例,说明不同扩展路径的适用场景与实现方法,帮助开发者在三系统景观中合理选 阅读详情

相关推荐

Mac用户看过来!M1/M2芯片安装CiteSpace完整指南(从Homebrew到成功运行)

本文为Mac M1/M2芯片用户提供CiteSpace安装的完整指南,从Homebrew安装适配的Java环境到最终成功运行CiteSpace。详细步骤包括环境检查、Java配置、CiteSpace下载与优化,解决常见问题如内存分配、图形渲染和中文显示乱码,确保科研人员能顺利使用这一文献可视化工具。

weixin_42530458的博客 305

剑指offer 12.矩阵中的路径

剑指offer 12.矩阵中的路径 解题思路: 回溯法,创建一个boolean[] 数组,记录每个字符是否被使用过,从上下左右四个方向递归搜索,如果下一个字符符合提哦案件,继续递归,如果不符合,让当前字符标记为没有使用。 public static void main(String[] args) { char[] matrix={'A','B','C','E','S','...

厚积薄发的博客 635

重带电粒子的能量歧离(energy straggling)

能量歧离,Bethe-Bloch

G751888629的博客 2298

17. leetCode--剑指Offer12矩阵中的路径

请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。

weixin_45267102的博客 221

AI辅助编程实战指南:从提示工程到开发环境搭建

大型语言模型(LLM)作为现代人工智能的核心技术,通过自然语言理解和生成能力,正在深刻改变软件开发范式。其原理基于海量代码和文本数据的预训练,能够根据上下文生成符合逻辑的代码片段和解决方案。这一技术的核心价值在于将开发者从繁琐的语法和基础逻辑编写中解放出来,提升开发效率与代码质量。在实际工程应用中,AI辅助编程已广泛应用于日常编码、代码调试、文档生成和系统设计等场景。其中,提示工程(Prompt Engineering)和检索增强生成(RAG)是两项关键技术:前者通过结构化、角色化的指令设计,引导AI生成更

weixin_26775679的博客 621

手把手教你用QEMU虚拟化华为路由器固件(附完整网络配置指南)

本文提供了一份详尽的QEMU虚拟化华为路由器固件的实战指南。从固件解包、网络桥接配置到QEMU虚拟机启动,手把手教你搭建完整的嵌入式设备沙箱环境,特别适合安全研究、逆向分析和学习嵌入式系统工作原理。

tgb3456789的博客 937

剑指Offer 面试题12. 矩阵中的路径

剑指Offer 面试题12. 矩阵中的路径 解题思路: 利用DFS加回溯的思路,寻找所有可能的路径。分别向上、左、下、右四个方向寻找,如果有一个方向走得通,则返回true,如果都走不通,说明当前元素无法形成路径,要进行回溯。 源代码: class Solution { private: int len; bool vis[1000][1000] = {false}; public: bool helper(vector<vector<char>>&amp

chizhonghang的博客 254

贝莱德(BlackRock)—— 阿拉丁(Aladdin)平台的 AI 赋能升级

全称(资产、负债、债务与衍生品投资网络),是贝莱德自主研发的一体化投资管理与风险管理技术平台,被誉为全球资管行业的 “

xm_mm的博客 1726

剑指 Offer 12. 矩阵中的路径 DFS回溯法

剑指 Offer 12. 矩阵中的路径 难度:中等 题目描述 解题思路 题目给的标签是动态规划,然后就一直顺着动态规划的思路想了好久,还是觉得不对啊,这不就是图的搜索嘛,动态规划感觉不好做。用dfs回溯感觉清晰很多 参考题解:面试题12. 矩阵中的路径(深度优先搜索 DFS ,清晰图解) 找到一个等于目标值的开始搜索,每次搜索上下左右四个相邻方向,剪枝条件是下标越界或者不等于目标值,当整个单词都匹配完的时候返回true; 要注意的是,回溯法在设置完状态,然后递归之后,还要状态回溯,清楚这一步标记的状态

hh155715的博客 192

单稳态触发器Multisim电路仿真——硬件工程师笔记

本文系统介绍了单稳态触发器的基础知识及其实现方式。主要内容包括:1)单稳态触发器的工作原理、电路结构、特点及应用;2)555定时器实现单稳态触发器的配置及工作过程;3)使用反相器和与非门实现积分型和微分型单稳态触发器的电路结构及工作原理。文章详细阐述了各种实现方式的特性、应用场景及设计考虑,为硬件工程师提供了实用的电路设计参考。最后还附有相关笔试面试题链接,便于读者进一步学习扩展。

XU157303764的博客 1877

ZED双目相机环境配置

ZED SDK 安装文件夹中有一个 Python 脚本(get_python_api.py),可以自动检测操作系统、CUDA 和 Python 版本并下载相应的预编译 Python API 包(pyzed)。安装SDK成功后,我们进入ZED SDK文件夹中的tools子文件夹,运行ZED Explorer.exe 以及 ZED Depth Viewer.exe,查看ZED相机是否能正常启用工作。在本例中,我们简单地检索ZED相机的序列号:打开 ZED相机,然后打印其序列号,然后关闭相机。

qq_53545309的博客 2137

剑指 Offer 12. 矩阵中的路径 java dfs

题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。 [[“a”,“b”,“c”,“e”], [“s”,“f”,“c”,“s”], [“a”,“d”,“e”,“e”]] 但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一

木竹的博客 166

流媒体服务软件-LiveNVR channeltree 未授权访问

LiveNVR 能够通过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机 IPCamera、NVR 等具有 RTSP/Onvif 协议输出的设备接入到 LiveNVR,LiveNVR 能够将这些设备源的音/视频数据进行采集、转换、输出,进行全平台终端直播(PC、Android、iOS、微信、H5),并且LiveNVR能够将视频源的直播数据对接到第三方 CDN 网络,实现安防设备互联网级别的直播分发。对channeltree接口加上权限校验。直接访问接口即可获取数据。

iSee857的博客 1040

剑指offer JZ12 矩阵中的路径

我们可以设计一个函数,dfs(x, y, k)表示,从(x, y)开始,且当前将要匹配的字符为word[k],是否能找到字符串为word的路径,不能返回false,否则返回true。矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次进入该格子。输入:[[a,b,c,e],[s,f,c,s],[a,d,e,e]],“abcb”数据范围:0≤n,m≤20 ,1≤len≤25。

qq_74980411的博客 565

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

剑指 Offer 12. 矩阵中的路径 python

剑指 Offer 12. 矩阵中的路径 python 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。 [[“a”,“b”,“c”,“e”], [“s”,“f”,“c”,“s”], [“a”,“d”,“e”,“e”]] 但矩阵中不包含字符串“abfb”的路径

qq_1277054161 484

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

LeetCode 之 剑指 Offer 12. 矩阵中的路径(Java)

LeetCode 之 剑指 Offer 12. 矩阵中的路径(Java),给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。

渣渣的夏天 637

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【LeetCode】剑指 Offer 12. 矩阵中的路径

题目链接:剑指 Offer 12. 矩阵中的路径 题目描述: 思路:这题一看就是搜索,直接套dfs求连通块的板子。简单解释一下就是: 找一个开始能匹配进行搜索,搜索该条路过程中标记搜索过的点(这里为矩阵中的字母),当找到一条链路之后递归返回匹配成功 如果不能匹配成功,在回溯时候需要进行标记还原 class Solution { private char[][] board; private boolean vis[][]; int dir[][]={{1,0},{-1,0},{

时光、疏离了记忆づ童话的博客 573

剑指offer 12. 矩阵中的路径

剑指offer 12. 矩阵中的路径 思路: 这个题是一个用回溯法解决的经典题。这个题就是遍历该数组,找到第一个符合ch与word第一个字符i匹配后,就在ch处的上下左右再寻找与i下一个位置相匹配的字符。找到了继续上述操作,没找到就说明这个路径是不通的,需要回溯到上一个ch,然后继续上述操作比较。这枚举出了所有路径,只要有路径就返回true。 代码: class Solution { public boolean exist(char[][] board, String word) {

sliencect的博客 137

【剑指Offer刷题】JZ12矩阵中的路径(中等)

路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。矩阵中包含一条字符串 “bcced” 的路径,但是矩阵中不包含 “abcb” 路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次进入该格子。其实已经找到一条路径了,可以返回 true 了,但是如果没有找到,需要继续找路径的起点,进行dfs。下面是过程图,橙色表示当前位置,蓝色表示已访问位置,黑色箭头指向下一个满足条件的位置。

Xiaolan_2001的博客 1204

剑指Offer12-矩阵中的路径

剑指Offer典型题整理 - 争取做最好的题解 剑指Offer12-矩阵中的路径 整理时间:2020年02月18日 本题和 LeetCode-79 相同 题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的...

哆啦A瑶的博客 597
上一篇: 剑指 Offer 04. 二维数组中的查找
下一篇: 剑指 Offer 25. 合并两个排序的链表
鲤鱼酒酒
博客等级 码龄7年 6粉丝 126原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值