C++ | Leetcode C++题解之第79题单词搜索

题目:

题解:

cpp 复制代码
class Solution {
public:
    bool exist(vector<vector<char>>& board, string word) {
        rows = board.size();
        cols = board[0].size();
        for(int i = 0; i < rows; i++) {
            for(int j = 0; j < cols; j++) {
                if (dfs(board, word, i, j, 0)) return true;
            }
        }
        return false;
    }
private:
    int rows, cols;
    bool dfs(vector<vector<char>>& board, string word, int i, int j, int k) {
        if (i >= rows || i < 0 || j >= cols || j < 0 || board[i][j] != word[k]) return false;
        if (k == word.size() - 1) return true;
        board[i][j] = '\0';
        bool res = dfs(board, word, i + 1, j, k + 1) || dfs(board, word, i - 1, j, k + 1) || 
                      dfs(board, word, i, j + 1, k + 1) || dfs(board, word, i , j - 1, k + 1);
        board[i][j] = word[k];
        return res;
    }
};
相关推荐
czxyvX几秒前
017-AVL树(C++实现)
开发语言·数据结构·c++
你真是饿了18 分钟前
1.C++入门基础
开发语言·c++
elseif12324 分钟前
【C++】并查集&家谱树
开发语言·数据结构·c++·算法·图论
凯子坚持 c32 分钟前
C++基于微服务脚手架的视频点播系统---客户端(4)
数据库·c++·微服务
问好眼1 小时前
【信息学奥赛一本通】1275:【例9.19】乘积最大
c++·算法·动态规划·信息学奥赛
coder攻城狮1 小时前
VTK系列1:在屏幕绘制多边形
c++·3d
不穿格子的程序员1 小时前
从零开始写算法——普通数组篇:缺失的第一个正数
算法·leetcode·哈希算法
HAPPY酷1 小时前
构造与析构:C++ 中对象的温柔生灭
java·jvm·c++
又见野草2 小时前
C++类和对象(下)
开发语言·c++
春夜喜雨2 小时前
关于内存分配的优化与设计
c++·tcmalloc·malloc·jemallc