【hot100-java】【单词搜索】

news2024/11/20 8:32:38

回溯

回溯可以使用DFS+剪枝解决

 

class Solution {
    public boolean exist(char[][] board, String word) {
        char[] words=word.toCharArray();
        for(int i=0;i<board.length;i++){
            for(int j=0;j<board[0].length;j++){
                if(dfs(board,words,i,j,0)) return true;
            }
        }
        return false;
    }

    boolean dfs(char[][]board,char[]word,int i,int j,int k){
        if(i>=board.length||i<0||j>=board[0].length||j<0||board[i][j]!=word[k]) return false;
        if(k==word.length-1)return true;
        board[i][j]='\0';
        boolean ret=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 ret;
    }
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2183501.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于Elastic Search与MySQL之间的数据同步

目录 前言 思路分析 同步调用 异步通知 监听binlog 选择 实现数据同步 思路 运行项目 声明交换机、队列 1&#xff09;引入依赖 2&#xff09;声明队列交换机名称 3&#xff09;声明队列交换机 发送MQ消息 接收MQ消息 前言 Elastic Search中的酒店数据来自于MyS…

TypeScript 算法手册【插入排序】

文章目录 TypeScript 算法手册 - 插入排序1. 插入排序简介1.1 插入排序定义1.2 插入排序特点 2. 插入排序步骤过程拆解2.1 选择当前元素2.2 寻找插入位置2.3 插入元素 3. 插入排序的优化3.1 二分查找插入排序案例代码和动态图 4. 插入排序的优点5. 插入排序的缺点总结 【 已更新…

48.哀家要长脑子了!

1.376. 摆动序列 - 力扣&#xff08;LeetCode&#xff09; 看问题抓本质 本质&#xff01;&#xff01;识别和追踪数组中元素值的变化趋势。摆动序列是什么&#xff0c;什么是摆动序列&#xff0c;就是差值正负正负的来&#xff0c;最后要求摆动序列的子序列的长度的话&#x…

如何在KEIL的Debug模式下导出数据

我们知道&#xff0c;利用Keil编写程序时&#xff0c;可以实时显示数据的值&#xff0c;如上图所示&#xff0c;实时显示Voltage和fre的值&#xff0c;那如何导出该数据呢&#xff0c;下边进行详细说明。 首先&#xff0c;进入Debug模式&#xff0c;点击调试里边的函数编辑器。…

计算机毕业设计 基于Python的摄影平台交流系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

GPU、AI、CUDA

文章目录 1.千层面层多层 2. CPU与GPU架构差异3.大规模矩阵操作4.专为并行计算设计的库 1.千层面 神经网络的本质是千层面&#xff0c;由一层一层的线性代数方程组成&#xff0c;每个方程都表示一段数据与另一段数据相关的可能性 层 神经网络的每一次层可以看作是一次线性代…

泰勒图 ——基于相关性与标准差的多模型评价指标可视化比较-XGBoost、sklearn

1、基于相关性与标准差的多模型评价指标可视化比较 # 数据读取并分割 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split plt.rcParams[font.family] = Times New Roman plt.rcParams[axes.unic…

工单管理系统功能解析,企业运营效率提升利器

工单管理系统如ZohoDesk提供工单生成分配、跟踪、数据分析、客户服务管理及移动兼容等功能&#xff0c;提升效率、增强服务、便于监管和降低成本&#xff0c;是现代企业信息化建设的重要部分。 一. 工单管理系统一般有哪些功能 1. 工单生成与分配 工单管理系统的基础功能是创…

Webstorm 中对 Node.js 后端项目进行断点调试

首先&#xff0c;肯定需要有一个启动服务器的命令脚本。 然后&#xff0c;写一个 debug 的配置&#xff1a; 然后&#xff0c;debug 模式 启动项目和 启动调试服务&#xff1a; 最后&#xff0c;发送请求&#xff0c;即可调试&#xff1a; 这几个关键按钮含义&#xff1a; 重启…

8.数据结构与算法-双向链表

双向链表的结构定义 从第二个指针找到下一个元素 从第一个指针找到上一个元素 双向循环列表 从第二个指针找到下一个元素&#xff0c;第二个指针可以往前循环找到链表开头 从第一个指针找到上一个元素&#xff0c;第一个指针可以往前循环昭侯链表结尾 双向链表的插入 双向链…

NLP:BERT的介绍并使用该模型计算文本相似度

1. BERT 1.1 Transformer Transformer架构是一种基于自注意力机制(self-attention)的神经网络架构&#xff0c;它代替了以前流行的循环神经网络和长短期记忆网络&#xff0c;已经应用到多个自然语言处理方向。   Transformer架构由两个主要部分组成&#xff1a;编码器(Encod…

uniapp中实现评分组件,多用于购买商品后,对商品进行评价等场景

前言 uni-rate是uniapp框架中提供的一个评分组件。它可以用于用户评价、打分等场景。uni-rate组件可以根据设定的星星总数&#xff0c;展示用户评分的效果&#xff0c;用户可以通过点击星星或滑动星星的方式进行评分。同时&#xff0c;uni-rate组件也支持自定义星星图标、星星…

关于CSS Grid布局

关于CSS Grid布局 实际效果参考 参考代码 <template><view class"baseInfo"><up-image class"cover" height"160rpx" width"120rpx" :src"bookInfo.cover"><template #error><view style"…

疾风大模型气象,基于气象数据打造可视化平台

引言 随着气象数据的广泛应用&#xff0c;越来越多的行业依赖天气预报与气候分析来做出决策。从农业、航空、能源到物流&#xff0c;气象信息无时不刻影响着各行各业的运作。然而&#xff0c;气象数据本身复杂且多样&#xff0c;如何将这些数据转化为直观、易于理解的图形和信…

MetaJUI v0.4 遇到的一些问题及解决办法记录

1、Unity3d 版本 2022.3.29f1。 2、MetaJUI v0.4 的下载&#xff0c;https://download.csdn.net/download/xingchengaiwei/89334848 3、将MetaJUI v0.4解压&#xff0c;用Unity3d 打开项目&#xff0c;会出现如下问题&#xff0c;按照图中提示操作即可。 4、打开工程后会出现…

第三人称射击游戏人物瞄准仰角的控制方案

这个功能有多种方案实现&#xff0c;总体可以分为两类&#xff1a; 1.改变腰的旋转&#xff1b; 2.改变手臂和头的旋转&#xff1b; 其中方案1&#xff1a; 只要转动腰一个骨骼&#xff0c;比较简单&#xff1b; 但是因为腰以上的部分都不动&#xff0c;第三人称比较僵硬&…

tk.mapper框架使用

说明&#xff1a;tk.mapper是一款DAO框架&#xff0c;也是基于Mybatis的&#xff0c;个人感觉&#xff0c;他是基于MyBatis和MyBatis-plus、MyBatis-Flex之间的过渡框架——能调用DAO的API&#xff0c;不手写SQL&#xff0c;但功能没有后面这两款框架多。本文介绍tk.mapper框架…

PyInstaller打包并设置图标

PyInstaller 是一个用于将 Python 代码打包成独立可执行文件的工具。如果你的 Python 代码中使用了一些资源文件&#xff08;如图片、音频、配置文件等&#xff09;&#xff0c;那么你需要将这些资源文件一起打包到可执行文件中&#xff0c;以便在运行时能够访问这些资源。 以…

STM32新建工程-基于库函数

一、创建一个新工程 我这里选择STM32F103C8的型号&#xff0c;然后点击OK。 keil5里面的小助手&#xff0c;暂时不用&#xff0c;叉掉 二、为工程添加文件和路径 在工程模板中还需要添加启动文件、系统头文件、系统时钟文件&#xff0c;创建一个文件夹start&#xff0c;将下面…

【韩顺平Java笔记】第5章:程序控制结构

文章目录 102. 回顾上一章节103. 顺序控制103.1 顺序控制 104. 单分支使用104.1 分支控制 if-else 介绍104.2 单分支 105. 单分支流程图106. 双分支使用107. 双分支流程图108. 双分支练习题109. 多分支使用109.1 多分支的流程图 110. 多分支练习1111. 多分支练习2112. 嵌套分支…