博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
79. Word Search
阅读量:6331 次
发布时间:2019-06-22

本文共 1864 字,大约阅读时间需要 6 分钟。

Given a 2D board and a word, find if the word exists in the grid.

The word can be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or vertically neighboring. The same letter cell may not be used more than once.

Example:

board =[  ['A','B','C','E'],  ['S','F','C','S'],  ['A','D','E','E']]

Given word = "ABCCED", return true.

Given word = "SEE", return true.
Given word = "ABCB", return false.

难度:medium

题目:给定2维格子和一单词,在格子中搜索该单词是否存在。

思路:递归四个方向。

Runtime: 8 ms, faster than 84.35% of Java online submissions for Word Search.
Memory Usage: 39 MB, less than 9.32% of Java online submissions for Word Search.

class Solution {    public boolean exist(char[][] board, String word) {        int m = board.length;        int n = board[0].length;        boolean[][] visited = new boolean[m][n];                for (int i = 0; i < m; i++) {            for (int j = 0; j < n; j++) {                if (exist(board, i, j, visited, word, 0)) {                    return true;                }            }        }                return false;    }        private boolean exist(char[][] board, int i, int j, boolean[][] visited, String word, int idx) {        if (i < 0 || i >= board.length             || j < 0 || j >= board[i].length             || visited[i][j]             || word.charAt(idx) != board[i][j]) {            return false;            }                if (idx == word.length() - 1) {            return true;           }                boolean flg = false;        visited[i][j] = true;        flg = flg || exist(board, i - 1, j, visited, word, idx + 1);        flg = flg || exist(board, i + 1, j, visited, word, idx + 1);        flg = flg || exist(board, i, j - 1, visited, word, idx + 1);        flg = flg || exist(board, i, j + 1, visited, word, idx + 1);        visited[i][j] = false;        return flg;    }}

转载地址:http://zuboa.baihongyu.com/

你可能感兴趣的文章
第二十四章:页面导航(六)
查看>>
百度、长沙加码自动驾驶,湖南阿波罗智行科技公司成立 ...
查看>>
Java面试笔试题大汇总一(最全+详细答案)
查看>>
10 个 Linux 中方便的 Bash 别名
查看>>
[Server] 服务器配置SSH登录邮件通知
查看>>
全新 DOCKER PALS 计划上线,带给您不一样的参会体验! ...
查看>>
Android开发之自定义View(二)
查看>>
python爬虫之微打赏(scrapy版)
查看>>
自制操作系统Antz day08——实现内核 (中) 扩展内核
查看>>
poj-1056-IMMEDIATE DECODABILITY(字典)
查看>>
阿里云容器Kubernetes监控(二) - 使用Grafana展现Pod监控数据
查看>>
区块链应用 | 不知道什么时候起,满世界都在谈区块链的事情
查看>>
小程序爆红 专家:对简单APP是巨大打击
查看>>
FarBox--另类有趣的网站服务【转】
查看>>
在非纯色背景上,叠加背景透明的BUTTON和STATIC_TEXT控件
查看>>
Distributed2:Linked Server Login 添加和删除
查看>>
海量数据处理相关面试问题
查看>>
Python-time
查看>>
Java中取两位小数
查看>>
RTX发送消息提醒实现以及注意事项
查看>>