LeetCode079——单词搜索

本文介绍了如何运用回溯法解决LeetCode中的单词搜索问题。通过定位单词的第一个字符,递归地沿着四个方向查找并标记已访问过的单元格。若找到所有单词字符则返回true,否则回溯并尝试其他路径。时间复杂度和空间复杂度均为O(len(word))。提供了详细的JAVA代码实现。
摘要由CSDN通过智能技术生成

我的LeetCode代码仓:https://github.com/617076674/LeetCode

原题链接:https://leetcode-cn.com/problems/word-search/description/

题目描述:

知识点:递归,回溯

思路:回溯法判断单词的存在性

这是一个二维平面上的回溯法的应用的经典例题。

我们在board数组里首先定位到word字符串的第0个元素所在的二维坐标(i, j)的值,然后从该(i, j)点按照上右下左4个方向的顺序取寻找下一个字符,如果找到,将该位置标记为已经被访问过,就继续递归地调用该函数继续寻找下一个字符,如果该函数返回的是true,表示能寻找到下一个字符,我们直接返回true。否则,我们需要退回到上一步,即取消对该位置已经访问过这一标记(变量的手动回溯!!!)。

如果4个方向都没有找到下一个字符,则直接返回false。

时间复杂度,需要递归O(len(word))层,每层所做的操作都是O(1)的复杂度,故时间复杂度为O(len(word))。而空间复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值