1 Star 0 Fork 0

amusement1234/LeetCode_Java

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
79.单词搜索.java 2.44 KB
一键复制 编辑 原始数据 按行查看 历史
amusement1234 提交于 2021-09-14 13:42 +08:00 . add list
/*
* @lc app=leetcode.cn id=79 lang=java
*
* [79] 单词搜索
*
* https://leetcode-cn.com/problems/word-search/description/
*
* algorithms
* Medium (41.69%)
* Likes: 471
* Dislikes: 0
* Total Accepted: 68.9K
* Total Submissions: 163.9K
* Testcase Example: '[["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]]\n"ABCCED"'
*
* 给定一个二维网格和一个单词,找出该单词是否存在于网格中。
*
* 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。
*
*
*
* 示例:
*
* board =
* [
* ⁠ ['A','B','C','E'],
* ⁠ ['S','F','C','S'],
* ⁠ ['A','D','E','E']
* ]
*
* 给定 word = "ABCCED", 返回 true
* 给定 word = "SEE", 返回 true
* 给定 word = "ABCB", 返回 false
*
*
*
* 提示:
*
*
* board 和 word 中只包含大写和小写英文字母。
* 1 <= board.length <= 200
* 1 <= board[i].length <= 200
* 1 <= word.length <= 10^3
*
*
*/
// @lc code=start
class Solution {
public boolean exist(char[][] board, String word) {
int h = board.length, w = board[0].length;
boolean[][] visited = new boolean[h][w];
for (int i = 0; i < h; i++) {
for (int j = 0; j < w; j++) {
boolean flag = dfs(board, word, visited, i, j, 0);
if (flag) {
return true;
}
}
}
return false;
}
public boolean dfs(char[][] board, String word, boolean[][] visited, int i, int j, int k) {
if (board[i][j] != word.charAt(k)) {
return false;
} else if (k == word.length() - 1) {
return true;
}
int[][] directions = { { 1, 0 }, { -1, 0 }, { 0, 1 }, { 0, -1 } };
visited[i][j] = true;
boolean result = false;
for (int[] dir : directions) {
int newI = i + dir[0], newJ = j + dir[1];
if (newI >= 0 && newI < board.length && newJ >= 0 && newJ < board[0].length) {
if (!visited[newI][newJ]) {
boolean flag = dfs(board, word, visited, newI, newJ, k + 1);
if (flag) {
result = true;
break;
}
}
}
}
visited[i][j] = false;
return result;
}
}
// @lc code=end
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/amusement1234/LeetCode_Java.git
git@gitee.com:amusement1234/LeetCode_Java.git
amusement1234
LeetCode_Java
LeetCode_Java
master

搜索帮助