日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 個人記錄-LeetCode 79. Word Search

個人記錄-LeetCode 79. Word Search

來源:程序員人生   發布時間:2017-03-09 09:14:43 閱讀次數:3286次

問題:
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.

For example,
Given board =

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

word = “ABCCED”, returns true,
word = “SEE”, returns true,
word = “ABCB”, returns false.

注意題干的“sequentially”, 即匹配方向是連續的,不走回頭路。
因而這個問題暴力遞歸便可。

代碼示例:

public class Solution {
    public boolean exist(char[][] board, String word) {
        if (board == null) {
            return false;
        }

        //用于記錄每一個字符是不是已匹配過
        boolean[][] bitMap = new boolean[board.length][board[0].length];

        //順次從每一個位置開始匹配
        for (int i = 0; i < board.length; ++i) {
            for (int j = 0; j < board[0].length; ++j) {
                if (existInner(board, i, j, bitMap, word, 0)) {
                    return true;
                }
            }
        }

        return false;
    }

    private boolean existInner(char[][] board, int i, int j, boolean[][] bitMap, String word, int next) {
        //匹配終了
        if (next == word.length()) {
            return true;
        }

        if (i >= board.length || i < 0 || j >= board[0].length || j < 0) {
            return false;
        }

        //不相等,或已匹配過
        if (board[i][j] != word.charAt(next) || bitMap[i][j]) {
            return false;
        }

        bitMap[i][j] = true;

        //向當前位置的4周繼續匹配
        boolean rst = existInner(board, i+1, j, bitMap, word, next+1) ||
                existInner(board, i-1, j, bitMap, word, next+1) ||
                existInner(board, i, j+1, bitMap, word, next+1) ||
                existInner(board, i, j-1, bitMap, word, next+1);

        if (!rst) {
            //需要復位
            bitMap[i][j] = false;
        }

        return rst;
    }
}
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产精品一区不卡 | 久久高清一区 | 91免费版在线 | 久久国产精品免费一区二区三区 | 伊人伊成久久人综合网站 | 欧美精品v国产精品v日韩精品 | 日韩综合精品 | 国产一级片在线播放 | 国产成人精品免高潮在线观看 | 日本va欧美va欧美va精品 | 精品成人一区二区 | 精品久久久久久久久久久久久久久久久 | 久久女| 一区二区三区精品国产 | 国产黄在线 | 99久久精品国产毛片 | 亚洲免费视频一区 | 久久九九免费视频 | 在线免费国产视频 | 久久国产一区二区 | 日韩精品一区二区三区在线播放 | 亚洲福利一区二区三区 | 精品欧美乱码久久久久久1区2区 | 国产三级精品三级在线观看国产 | 91网站免费观看 | 亚洲国产黄色 | 日韩久久久精品 | 国产福利视频网站 | 亚洲最大福利网站 | 亚洲第一性理论片 | 成人一区二区三区 | 国产精品久久久久久妇女 | 国产精品国产三级国产aⅴ浪潮 | 国产精品久久久久久久久久 | 国产精品一区二区三区在线 | 久久久精品一区 | 极品束缚调教一区二区网站 | 二区三区在线观看 | 少妇一区二区三区 | 一级片a | 久久视频在线看 |