zoukankan      html  css  js  c++  java
  • Word Search

    题目链接

    Word Search - LeetCode

    注意点

    • 尽量减少函数参数的个数,而且最好使用引用,否则速度会慢很多

    解法

    解法一:典型的dfs。从开头的字母开始,往四周寻找下一个字母,如果没有匹配的就返回false。根据短路特性找到一个匹配的之后就会继续访问下去。

    class Solution {
    public:
        bool dfs(vector<vector<char>>& board,string& word,int index,int x,int y)
        {
            
            if(index == word.size()) return true;
            if(x < 0 || y < 0 || x >= board.size() || y >= board[0].size() || board[x][y] != word[index] ) return false;
            bool res = false;
            char temp = board[x][y];
            board[x][y] = '*';
            res = dfs(board,word,index+1,x,y+1) ||
                  dfs(board,word,index+1,x,y-1) ||
                  dfs(board,word,index+1,x+1,y) ||
                  dfs(board,word,index+1,x-1,y);
            board[x][y] = temp;
            return res;
        }
        bool exist(vector<vector<char>>& board, string word) {
            if(word.size() == 0) return true;
            if(board.size() == 0) return false;
            int i,j,m = board.size(),n = board[0].size();
            for(i = 0;i < m;i++)
            {
                for(j = 0;j < n;j++)
                    if(board[i][j] == word[0]) if(dfs(board,word,0,i,j)) return true;
            }
            return false;
        }
    };
    

    小结

    • dfs。
  • 相关阅读:
    软硬链接
    查看文件内容
    cp+mv
    cd+rm+pwd
    ls+tree
    绝对路径和相对路径
    Linux目录结构
    修改hostname
    java. util. concurrent. atomic
    git
  • 原文地址:https://www.cnblogs.com/multhree/p/10497982.html
Copyright © 2011-2022 走看看