LeetCode:60.单词搜索

目录

1.单词搜索


1.单词搜索

cpp 复制代码
class Solution {
    bool check[7][7];
    int m, n;
public:
    bool exist(vector<vector<char>>& board, string word) 
    {
        m = board.size(), n = board[0].size();
        for(int i = 0; i < m; i++)
            for(int j = 0; j < n; j++)
                if(board[i][j] == word[0])
                {
                    check[i][j] = true;
                    if(dfs(board, i, j, word, 1) == true) return true;
                    check[i][j] = false;
                }
        return false;
    }

    int dx[4] = {0, 0, 1, -1};
    int dy[4] = {1, -1, 0, 0};

    bool dfs(vector<vector<char>>& board, int i, int j, string word, int pos)
    {
        
        if(pos == word.size()) return true;
        for(int k = 0; k < 4; k++)
        {
            int x = i + dx[k], y = j + dy[k];
            if(x >= 0 && x < m && y >= 0 && y < n && check[x][y] == false && board[x][y] == word[pos])
            {
                check[x][y] = true;
                if(dfs(board, x, y, word, pos + 1) == true) return true;
                check[x][y] = false;
            }
        }
        return false;
    }
};
相关推荐
mmz12073 小时前
动态规划 练习(c++)
c++·算法·动态规划
tqs_123453 小时前
分sheet写入excel
开发语言·python·算法
西望云天3 小时前
基础组合计数(三道例题)
数据结构·算法·icpc
小灰灰的FPGA4 小时前
29.9元汉堡项目:基于matlab+FPGA的FFT寻峰算法实现
算法·matlab·fpga开发
花心蝴蝶.5 小时前
JVM 垃圾回收
java·jvm·算法
im_AMBER5 小时前
hello算法笔记 02
笔记·算法
Michelle80236 小时前
决策树习题
算法·决策树·机器学习
hn小菜鸡6 小时前
LeetCode 2540.最小公共值
数据结构·算法·leetcode
Tisfy6 小时前
LeetCode 0611.有效三角形的个数:双指针
算法·leetcode·题解·双指针