穷举vs暴搜vs深搜vs回溯vs剪枝系列一>单词搜索

news/2025/2/3 22:31:33 标签: 剪枝, 算法, 深度优先遍历, 回溯, 递归

题解如下

  • 题目:
  • 解析
    • 决策树:
    • 代码设计:
  • 代码:

题目:

这里是引用

解析

决策树:

在这里插入图片描述

代码设计:

这里是引用

代码:

class Solution {
    private boolean[][] visit;//标记使用过的数据
    int m,n;//行,列
    char[] word;

    public boolean exist(char[][] board, String _word) {
        m = board.length;
        n = board[0].length;
        visit = new boolean[m][n];
        word = _word.toCharArray();

        for(int i = 0; i < m; i++)
            for(int j = 0; j < n; j++){
                if(word[0] == board[i][j]){
                    visit[i][j] = true;
                    if(dfs(board,i,j,1)) return true;
                    visit[i][j] = false;//恢复现场
                }
            }
        return false;    
    }

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


    boolean dfs(char[][]board, int i, int j, int pos){
        if(pos == word.length){
            return true;//搜索成功
        }

        for(int k = 0; k < 4; k++) {
            int x = i + dx[k]; 
            int y = j + dy[k];

            if(x >= 0 && x < m && y >= 0 && y < n && !visit[x][y] && word[pos] == board[x][y]){
                visit[x][y] = true;
                if(dfs(board,x,y,pos+1)) return true;
                visit[x][y] = false;//恢复现场
            }
        }

        return false;
    }
}

http://www.niftyadmin.cn/n/5841075.html

相关文章

MySQL的GROUP BY与COUNT()函数的使用问题

在MySQL中&#xff0c;GROUP BY和 COUNT()函数是数据聚合查询中非常重要的工具。正确使用它们可以有效地统计和分析数据。然而&#xff0c;不当的使用可能会导致查询结果不准确或性能低下。本文将详细讨论 GROUP BY和 COUNT()函数的使用方法及常见问题&#xff0c;并提供相应的…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.6 广播机制核心算法:维度扩展的数学建模

2.6 广播机制核心算法&#xff1a;维度扩展的数学建模 目录/提纲 #mermaid-svg-IfELXmhcsdH1tW69 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-IfELXmhcsdH1tW69 .error-icon{fill:#552222;}#mermaid-svg-IfELXm…

ELECTRA:作为判别器而非生成器的预训练文本编码器

摘要 诸如BERT之类的掩码语言建模&#xff08;MLM&#xff09;预训练方法通过将某些标记替换为[MASK]来破坏输入&#xff0c;然后训练模型以重建原始标记。尽管这些方法在下游自然语言处理&#xff08;NLP&#xff09;任务中表现良好&#xff0c;但它们通常需要大量的计算资源…

DeepSeek R1 简易指南:架构、本地部署和硬件要求

DeepSeek 团队近期发布的DeepSeek-R1技术论文展示了其在增强大语言模型推理能力方面的创新实践。该研究突破性地采用强化学习&#xff08;Reinforcement Learning&#xff09;作为核心训练范式&#xff0c;在不依赖大规模监督微调的前提下显著提升了模型的复杂问题求解能力。 技…

动手学图神经网络(8):在消息传递中定制聚合操作

在消息传递中定制聚合操作 安装Pytorch和PyG # 安装所需的包 import os import torch os.environ[TORCH] = torch.__version__# 以下是安装命令,实际运行时可取消注释 #!pip install -q torch-scatter -f https://data.pyg.org/whl/torch-${TORCH}.html #!pip install -q to…

14 2D矩形模块( rect.rs)

一、 rect.rs源码 // Copyright 2013 The Servo Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution. // // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or // http://www.apache.org/licenses/LICENS…

Compose笔记(二)--LaunchedEffect

这一节了解一下LaunchedEffect&#xff0c;在 Jetpack Compose 里&#xff0c;LaunchedEffect是一种用于启动协程的可组合函数&#xff0c;其主要用途是在协程里执行异步操作。LaunchedEffect函数能够接收一个或多个key参数。 1 key的含义: LaunchedEffect函数的key参数指的是…

ROS-SLAM

基本概念 SLAM 即 Simultaneous Localization and Mapping&#xff0c;中文名为同时定位与地图构建&#xff0c;是机器人、自动驾驶、增强现实等领域中的关键技术。 在未知环境中&#xff0c;搭载特定传感器的主体&#xff08;如机器人、无人机等&#xff09;在运动过程中&am…