博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
79. Word Search
阅读量:6343 次
发布时间: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://vcula.baihongyu.com/

你可能感兴趣的文章
[转] 用实例给新手讲解RSA加密算法
查看>>
Ubuntu里设置python默认版本为python3(转载)
查看>>
快排+折半查找
查看>>
Python之迭代器,生成器
查看>>
c# GC 新典型
查看>>
ssh bash 通配符
查看>>
seajs在jquery多个版本下引用jquery的插件的方案
查看>>
NOIP2011计算系数;
查看>>
到处是坑的微信公众号支付开发(java)
查看>>
关于网络上java,php和.net的“口角之争“的一点想法 !
查看>>
python 第二周(第十三天) 我的python成长记 一个月搞定python数据挖掘!(21) -正则表达式re...
查看>>
java的一些基础知识
查看>>
[POI2011]SEJ-Strongbox
查看>>
20文件
查看>>
Android开发Intent应用概述
查看>>
【Go】并发编程
查看>>
获取JAVA对象占用的内存大小
查看>>
python-----环境变量
查看>>
如何让 UITableViewCell 中的 imageView 大小固定
查看>>
python__基础 : 多继承中方法的调用顺序 __mro__方法
查看>>