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。
  • 相关阅读:
    创建pdf
    IOS绘图
    IOS断点续传
    IOS程序之间的跳转
    MBProgressHUD的使用
    清除缓存的方法(计算)
    使用post请求下载数据
    NSTimer的使用
    定位功能(使用系统地图)
    fork仓库保持同步更新
  • 原文地址:https://www.cnblogs.com/multhree/p/10497982.html
Copyright © 2011-2022 走看看