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;
    }
};
相关推荐
又见野草8 分钟前
C++入门基础(初阶)
开发语言·c++
不知名XL9 分钟前
day22 回溯算法part04
算法·leetcode·职场和发展
Yu_Lijing10 分钟前
基于C++的《Head First设计模式》笔记——命令模式
c++·笔记·设计模式
夏鹏今天学习了吗14 分钟前
【LeetCode热题100(77/100)】杨辉三角
算法·leetcode·职场和发展
求梦82016 分钟前
【力扣hot100题】搜索二维矩阵II(16)
算法·leetcode·矩阵
艾莉丝努力练剑26 分钟前
【QT】环境搭建收尾:认识Qt Creator
运维·开发语言·c++·人工智能·qt·qt creator·qt5
Larry_Yanan29 分钟前
Qt安卓开发(二)摄像头打开
android·开发语言·数据库·c++·qt·ui
HalvmånEver34 分钟前
Linux:深入剖析 System V IPC下(进程间通信九)
linux·运维·服务器·c++·system v·管道pipe
m0_7482500336 分钟前
C++ 修饰符类型
开发语言·c++
李日灐41 分钟前
C++STL:仿函数、模板(进阶) 详解!!:“伪装术”和模板特化、偏特化的深度玩法指南
开发语言·c++·后端·stl