首页 > 其他分享 >单词搜索(递归)

单词搜索(递归)

时间:2025-01-18 12:58:51浏览次数:1  
标签:return 递归 int 单词 搜索 board ans false size

题目链接: https://leetcode.cn/problems/word-search/

题意:

给定二维char数组,询问是否能够有路径来获得给定的字符数组
无法改为动态规划表

class Solution {
public:
    bool exist(vector<vector<char>>& board, string word) {
        int n=board.size();
        int m=board[0].size();
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                if(f(board,n,m,word,i,j,0)){
                    return true;
                }
            }
        }
        return false;
    }
    bool f(vector<vector<char>>&board,int n,int m,string w,int i,int j,int k){
        //basecase!
        if(k==w.size()){
            return true;
        }
        if(i<0||i>=n||j<0||j>=m||w[k]!=board[i][j])return false;
        
        //try
        bool ans=false;
        char tmp=board[i][j];
        board[i][j]='0';
        ans=f(board,n,m,w,i-1,j,k+1)||f(board,n,m,w,i+1,j,k+1)||f(board,n,m,w,i,j-1,k+1)||f(board,n,m,w,i,j+1,k+1);
        board[i][j]=tmp;
        return ans;
    }
};

标签:return,递归,int,单词,搜索,board,ans,false,size
From: https://www.cnblogs.com/benscode/p/18678361

相关文章

  • CSP2025 - 搜索,折半搜索专题
    CSP2025-搜索,折半搜索专题A.P1074[NOIP2009提高组]靶形数独搜就完了,一种比较好写的方式是把所有的\(0\)搞到一个vector里面,记录它在哪一行、哪一列、哪一九宫格,然后一个一个搜能填什么。然后是优化问题,把所在行\(0\)的个数最少的行优先搜,用stable_sort。B.P4573......
  • 使用标签怎样对一个单词标志缩写呢?
    在前端开发中,要对一个单词进行缩写标记,通常可以使用HTML的<abbr>标签。这个标签用于表示一个缩写或首字母缩略词,并可以通过title属性来提供缩写的完整形式或解释。当用户将鼠标悬停在带有<abbr>标签的文本上时,浏览器会显示title属性中的值作为工具提示。以下是使用<abbr>标签标记......
  • 【搜索】洛谷P1123 取数游戏
    P1123取数游戏搜索顺序:按格子枚举。思想类比AcWing843.n-皇后问题按格子枚举方法,以及AcWing1116.马走日AcWing1117.单词接龙AcWing1118.分成互质组,体会恢复现场写在for循环内部与写在for循环外部的区别。最大的区别:恢复现场写在for循环外可以不用清空标记数组。......
  • 大一计算机的自学总结:二叉树三种序的非递归遍历
    前言二叉树的递归遍历在我上一篇“二叉树及其三种序的递归遍历”里有。其中用到的“BinaryTree”也在链接文章的“二叉树的创建”里。大一计算机的自学总结:二叉树及其三种序的递归遍历而非递归遍历是借助栈的特性,会更难更复杂。TvT......一、先序遍历#include<bits/stdc++.......
  • 【做题记录】csp2025-搜索,折半搜索专题
    A.「NOIP2009」靶形数独暴搜。本着搜索必剪枝的思想,略微做一点优化:优先搜索\(0\)少的行。然后就搜就行。Code#include<bits/stdc++.h>#definelllonglong#defineilinlineusingnamespacestd;namespaceasbt{namespacecplx{boolbegin;}namespaceIO{ const......
  • 折半搜索(Meet in the Middle)
    折半搜索(MeetintheMiddle)思想先搜索前一半的状态,再搜索后一半的状态,再记录两边状态相结合的答案。一般暴力搜索的时间复杂度是\(O(2^n)\)级别的,但是折半搜索可以将时间复杂度降到\(O(2^{\frac{n}{2}})\)。例题拿题说事儿。[LuoguP4799[CEOI2015Day2]世界冰球锦标赛......
  • HAL库 相关单词注解表示(持续更新)
    SET/RESET------(1/0)通常用于表示将某个位、寄存器或标志设置为特定的值(通常 SET 表示设置为1,RESET 表示设置为0 Pin------引脚在嵌入式开发中,“PIN”通常指“引脚(Pin)”,即芯片或电子元件上用于连接外部电路或与其他设备进行通信的金属接触点。support------支持在......
  • 【LeetCode】力扣刷题热题100道(31-35题)附源码 搜索二维矩阵 岛屿数量 腐烂的橙子 课程
    一、搜索二维矩阵编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。可以使用从右上角开始搜索的方法来有效地找到目标值。选择起始位置:从矩阵的右上角开始。......
  • 写一个方法,将字符串中的单词倒转后输出,如:`my love` -> `ym evol`
    在前端开发中,我们可以使用JavaScript来实现这个功能。以下是一个简单的方法,它接受一个字符串作为参数,然后将字符串中的每个单词倒转后输出:functionreverseWordsInString(str){//将字符串按空格分割成单词数组constwords=str.split('');//使用map函数遍历单词数......
  • 热门开源Ai搜索引擎对比分析
    汇总lepton●项目地址:https://github.com/leptonai/search_with_lepton●简介:比较早期的AiSearch,由贾扬清团队项目开源,整个项目含前后端在内仅需不到500行代码。●搜索引擎:支持两种默认搜索引擎:Bing和Google。●LLM:官方提供的API,可自行替换其他厂商API。●其他:提供......