首页 > 其他分享 >LeetCode 79. 单词搜索(/dfs)

LeetCode 79. 单词搜索(/dfs)

时间:2023-02-27 18:55:07浏览次数:49  
标签:newj int dfs vector bool board visited LeetCode 79

原题解

题目

约束

题解

class Solution {
public:
    bool check(vector<vector<char>>& board, vector<vector<int>>& visited, int i, int j, string& s, int k) {
        if (board[i][j] != s[k]) {
            return false;
        } else if (k == s.length() - 1) {
            return true;
        }
        visited[i][j] = true;
        vector<pair<int, int>> directions{{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
        bool result = false;
        for (const auto& dir: directions) {
            int newi = i + dir.first, newj = j + dir.second;
            if (newi >= 0 && newi < board.size() && newj >= 0 && newj < board[0].size()) {
                if (!visited[newi][newj]) {
                    bool flag = check(board, visited, newi, newj, s, k + 1);
                    if (flag) {
                        result = true;
                        break;
                    }
                }
            }
        }
        visited[i][j] = false;
        return result;
    }

    bool exist(vector<vector<char>>& board, string word) {
        int h = board.size(), w = board[0].size();
        vector<vector<int>> visited(h, vector<int>(w));
        for (int i = 0; i < h; i++) {
            for (int j = 0; j < w; j++) {
                bool flag = check(board, visited, i, j, word, 0);
                if (flag) {
                    return true;
                }
            }
        }
        return false;
    }
};

标签:newj,int,dfs,vector,bool,board,visited,LeetCode,79
From: https://www.cnblogs.com/chuixulvcao/p/17161479.html

相关文章

  • LeetCode 周赛 334,在算法的世界里反复横跳
    本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]提问。大家好,我是小彭。今天是LeetCode第334场周赛,你参加了吗?这场周赛考察范围比较基础,整体难度......
  • LeetCode 78. 子集(/)
    原题解题目约束题解解法一classSolution{public:vector<int>t;vector<vector<int>>ans;vector<vector<int>>subsets(vector<int>&nums)......
  • #yyds干货盘点# LeetCode面试题:下一个排列
    1.简述:整数数组的一个排列 就是将其所有成员以序列或线性顺序排列。例如,arr=[1,2,3],以下这些都可以视作arr的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1]。整数数组的......
  • #yyds干货盘点# LeetCode面试题:最长有效括号
    1.简述:给你一个只包含'(' 和')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 示例1:输入:s="(()"输出:2解释:最长有效括号子串是"()"示例2:输入:s=")()())"......
  • #yyds干货盘点# LeetCode程序员面试金典:平分正方形
    题目:给定两个正方形及一个二维平面。请找出将这两个正方形分割成两半的一条直线。假设正方形顶边和底边与x轴平行。每个正方形的数据square包含3个数值,正方形的左下顶点坐......
  • #yyds干货盘点# LeetCode程序员面试金典:最佳直线
    题目:给定一个二维平面及平面上的N个点列表Points,其中第i个点的坐标为Points[i]=[Xi,Yi]。请找出一条直线,其通过的点的数目最多。设穿过最多点的直线所穿过的全部点编号从......
  • 四川九联代工M301H hi3798 mv300 mt7668魔百和 强刷和TTL线刷(救砖)经验分享
    以下都是本次自己操作后的一些经验,不是技术分享,也是看来很多水教程后总结的精华。四川九联代工M301Hhi3798mv300mt7668魔百和 一、强刷1.强刷的教程网上有很多,自己......
  • FastDFS单机环境搭建
    1官网资料​源码地址:​​https://github.com/happyfish100/fastdfs​​部署资料:​​https://github.com/happyfish100/fastdfs/wiki​​软件下载:​​https://github.com/hap......
  • 【LeetCode】27. 移除元素
    移除指定元素时间复杂度O(n)空间复杂度O(1)classSolution{public:intremoveElement(vector<int>&nums,intval){intfast,low;for(f......
  • 【DFS】LeetCode 291. 单词规律 II
    题目链接291.单词规律II思路定义一个全局HashMap<Character,String>来存储映射关系,key为pattern的字符,value为str的子串。一开始,map中没有任何映射关系。......