剑指Offer - 面试题12. 矩阵中的路径(DFS回溯)

1. 题目

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

[["a","b","c","e"],["s","f","c","s"],["a","d","e","e"]]

但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次进入这个格子。

示例 1:
输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCCED"
输出:true示例 2:
输入:board = [["a","b"],["c","d"]], word = "abcd"
输出:false提示:
1 <= board.length <= 200
1 <= board[i].length <= 200

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/ju-zhen-zhong-de-lu-jing-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 题目

相同题目:
LeetCode 79. 单词搜索(回溯DFS)

class Solution {bool found = false;vector<vector<int>> dir = {{1,0},{0,1},{0,-1},{-1,0}};int m, n;
public:bool exist(vector<vector<char>>& board, string word) {int i, j;m = board.size(), n = board[0].size();for(i = 0; i < board.size(); ++i){for(j = 0; j < board[0].size(); ++j)if(!found)dfs(board,i,j,word,0);elsereturn found;}return found;}void dfs(vector<vector<char>>& board, int i, int j, string& word, int w){if(found || (w<word.size() && board[i][j] != word[w]))return;if(w==word.size()-1){found = true;return;}int x, y;char ch;for(int k = 0; k < 4; ++k){	//4个方向x = i+dir[k][0];y = j+dir[k][1];if(x >=0 && x<m && y>=0 && y<n){ch = board[i][j];//当前位置记录下来board[i][j] = '*';//标记走过了dfs(board,x,y,word,w+1);board[i][j] = ch;//回溯,还原现场}}}
};

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477361.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一篇论文8778个作者:人均写5个字,署名用了17页

文 | 梦晨(发自凹非寺)源 | 公众号QbitAI一篇论文有8778位作者是什么感觉&#xff1f;在PDF里&#xff0c;光作者列表就要占17页。有人试图把所有名字排版在同一页&#xff0c;字已经小到看不清。这篇论文来自欧洲核子研究中心的ATLAS对撞机合作组&#xff0c;刷新了他们在2015…

Spring Boot 2.x基础教程:工程结构推荐

Spring Boot框架本身并没有对工程结构有特别的要求&#xff0c;但是按照最佳实践的工程结构可以帮助我们减少可能会遇见的坑&#xff0c;尤其是Spring包扫描机制的存在&#xff0c;如果您使用最佳实践的工程结构&#xff0c;可以免去不少特殊的配置工作。 典型示例 以下结构是…

剑指Offer - 面试题18. 删除链表的节点

1. 题目 给定单向链表的头指针和一个要删除的节点的值&#xff0c;定义一个函数删除该节点。 返回删除后的链表的头节点。 注意&#xff1a;此题对比原题有改动 示例 1: 输入: head [4,5,1,9], val 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点&#xff0c;那么…

因为工资补贴邮件被划空银行卡?搜狐全体员工被诈骗始末

文 | 小戏“叮~”如果你的手机弹出了新邮件提示&#xff0c;弹窗显示【xx公司财务部】关于发布最新工资补贴通知……&#xff0c;你会怎么想&#xff1f;当我看到了正确的公司名&#xff0c;与或许有一定道理的工资补贴&#xff0c;这些信息还是会驱使我带着疑惑打开邮件&#…

剑指Offer - 面试题24. 反转链表(遍历/递归)

1. 题目 定义一个函数&#xff0c;输入一个链表的头节点&#xff0c;反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL限制&#xff1a; 0 < 节点个数 < 5000来源&#xff1a;力扣&…

我是粉红猪佩奇,我要把粉色吹风机写进 IJCAI 论文!

文 | 智商掉了一地当小猪佩奇的忠实观众进行AI研究&#xff0c;论文配图居然是这样的风格……在介绍接下来的内容前&#xff0c;我们先来看一则笑话&#xff1a;小猪佩奇哭着对妈妈说&#xff1a;“小伙伴们都说我长得像粉色吹风机。” 猪妈妈安慰道&#xff1a;“尽瞎说&#…

Spring Boot 2.x基础教程:快速入门

简介 在您第1次接触和学习Spring框架的时候&#xff0c;是否因为其繁杂的配置而退却了&#xff1f;在你第n次使用Spring框架的时候&#xff0c;是否觉得一堆反复黏贴的配置有一些厌烦&#xff1f;那么您就不妨来试试使用Spring Boot来让你更易上手&#xff0c;更简单快捷地构建…

剑指Offer - 面试题64. 求1+2+…+n(递归)

1. 题目 求 12…n &#xff0c;要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句&#xff08;A?B:C&#xff09;。 示例 1&#xff1a; 输入: n 3 输出: 6示例 2&#xff1a; 输入: n 9 输出: 45限制&#xff1a; 1 < n < 10000来源&…

AI社区炸锅了!一句话哄一哄就能让GPT-3准确率暴涨61%!

文 | 梦晨 明敏 发自 凹非寺源 | 量子位一觉醒来&#xff0c;机器学习社区炸了锅。因为最新研究发现&#xff0c;只要对GPT-3说一句“让我们一步一步地思考”&#xff0c;就能让它正确回答出以前不会的问题。比如下面这个例子&#xff1a;16个球中有一半是高尔夫球&#xff0c;…

全网Star最多(近20k)的Spring Boot开源教程 2019 年要继续更新了!

从2016年1月开始写博客&#xff0c;默默地更新《Spring Boot系列教程》&#xff0c;从无人问津到千万访问&#xff0c;作为一个独立站点&#xff08;http://blog.didispace.com&#xff09;&#xff0c;相信只有那些跟我一样&#xff0c;坚持维护自己独立博客的童鞋才能体会这有…

剑指Offer - 面试题65. 不用加减乘除做加法(位运算,要看哦)

1. 题目 写一个函数&#xff0c;求两个整数之和&#xff0c;要求在函数体内不得使用 “”、“-”、“*”、“/” 四则运算符号。 示例: 输入: a 1, b 1 输出: 2提示&#xff1a; a, b 均可能是负数或 0 结果不会溢出 32 位整数来源&#xff1a;力扣&#xff08;LeetCode&am…

Spring Boot中如何扩展XML请求和响应的支持

在之前的所有Spring Boot教程中&#xff0c;我们都只提到和用到了针对HTML和JSON格式的请求与响应处理。那么对于XML格式的请求要如何快速的在Controller中包装成对象&#xff0c;以及如何以XML的格式返回一个对象呢&#xff1f; 实现原理&#xff1a;消息转换器&#xff08;M…

我在斯坦福做的科研demo…要被导师带去美国国会演讲?

文 | Jazon编 | 小戏大家好&#xff0c;我是 Jazon。时光荏苒&#xff0c;一转眼我已经快要从 Stanford CS 系毕业了。今年7月&#xff0c;我将开始谷歌总部工作&#xff0c;短期内会在硅谷定居&#xff0c;湾区的朋友们欢迎约起呀。笔者去年写过一篇文章&#xff0c;分享了我研…

剑指Offer - 面试题21. 调整数组顺序使奇数位于偶数前面(双指针,原地算法)

1. 题目 输入一个整数数组&#xff0c;实现一个函数来调整该数组中数字的顺序&#xff0c;使得所有奇数位于数组的前半部分&#xff0c;所有偶数位于数组的后半部分。 示例&#xff1a; 输入&#xff1a;nums [1,2,3,4] 输出&#xff1a;[1,3,2,4] 注&#xff1a;[3,1,2,4]…

使用Cloud Studio在线编写、调试和管理Spring Boot应用

在之前的《Spring Boot基础教程》中&#xff0c;我们介绍了通过Spring官方的构建页面来生成项目&#xff0c;也介绍了通过使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程。在完成了基础项目构建之后&#xff0c;我们要开始进行的就是代码的开发阶段&#x…

神TM的SOTA ,看完谷歌的新论文,我对AI大厂有些失望

源 | 机器之心用数万美元 TPU 算力&#xff0c;实现在 CIFAR-10 上 0.03% 的改进&#xff0c;创造了新的 SOTA&#xff0c;但这一切值得吗&#xff1f;「我相信他们得到的数字是准确的&#xff0c;他们确实做了工作并得到了结果…… 但这样真的好吗&#xff1f;」一名机器学习研…

Springboot 2.0选择HikariCP作为默认数据库连接池的五大理由

转载自公众号&#xff1a;工匠小猪猪的技术世界 摘要: 本文非原创&#xff0c;是笔者搜集了一些HikariCP相关的资料整理给大家的介绍&#xff0c;主要讲解了为什么sb2选择了HikariCP以及HikariCP为什么这么快。 Springboot2默认数据库连接池选择了HikariCP为何选择HikariCP理由…

剑指Offer - 面试题13. 机器人的运动范围(BFS/DFS)

文章目录1. 题目2. 解题2.1 BFS2.2 DFS1. 题目 地上有一个m行n列的方格&#xff0c;从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动&#xff0c;它每次可以向左、右、上、下移动一格&#xff08;不能移动到方格外&#xff09;&#xff0c;也不能进入…

聊聊“润(run)”

文 | One day知乎大家好&#xff0c;我是one day。前不久&#xff0c;我和知乎大V陈然老师在广州的台风天上午&#xff0c;线上聊了一杯咖啡时间的天&#xff0c;老师帮忙解答了一些疑虑&#xff0c;share了一些自己的想法。主要是围绕 美国湾区互联网工作氛围、大厂&创业公…

Spring Boot使用@Async实现异步调用:使用Future以及定义超时

之前连续写了几篇关于使用Async实现异步调用的内容&#xff0c;也得到不少童鞋的反馈&#xff0c;其中问题比较多的就是关于返回Future的使用方法以及对异步执行的超时控制&#xff0c;所以这篇就来一起讲讲这两个问题的处理。 如果您对于Async注解的使用还不了解的话&#xf…