Leetcode面试经典150题-79.搜索单词

ops/2024/9/19 11:58:10/ 标签: leetcode, 面试, 算法

题目比较简单,回溯最基础的题,记得除非覆盖,否则一定要恢复现场就行

解法都在代码里,不懂就留言或者私信

class Solution {public boolean exist(char[][] board, String word) {int m = board.length; int n = board[0].length;if(m * n < word.length()) {return false;}/**转换成字符数组 */char[] wordArr = word.toCharArray();for(int i = 0; i < board.length; i++) {for(int j = 0; j < board[i].length; j++) {/**任何一个成功,直接返回,这里加一下等于判断提高效率*/if(process(board, wordArr, i , j, 0)) {return true;}}}return false;}public boolean process(char[][] board, char[] wordArr, int row, int col, int curIndex) {if(curIndex == wordArr.length) {return true;}if(row < 0 || row >= board.length || col < 0 || col >= board[row].length || board[row][col] != wordArr[curIndex]) {return false;}/**用过的标记成0(数字0)并在此之前记录原始值,用于失败后的恢复现场*/char orginChar = board[row][col];board[row][col] = '0';/**上下左右都试一下 */boolean up = process(board, wordArr, row - 1, col, curIndex + 1);boolean right = process(board, wordArr, row, col + 1, curIndex + 1);boolean down = process(board, wordArr, row + 1, col, curIndex + 1);boolean left = process(board, wordArr, row, col - 1, curIndex + 1);/**任何一个成功就是成功,不再继续尝试 */if(up || right || down || left) {return true;}/**如果失败了下个需要重新从这个位置开始尝试,这里要恢复现场 */board[row][col] = orginChar;/**失败了返回false */return false;}
}


http://www.ppmy.cn/ops/110923.html

相关文章

JS 扩展运算符有哪些使用场景?

你好&#xff0c;我是沐爸&#xff0c;欢迎点赞、收藏、评论和关注。 扩展运算符有哪些使用场景&#xff1f;直接进入正题 一、复制数组 const a1 [1, 2];// 写法一 const a2 [...a1]; // 写法二 const [...a2] a1;二、合并数组 const part1 [1, 2, 3]; const part2 …

Python 数学建模——ARMA 时间序列分析

文章目录 前言使用前提平稳性检验白噪声检验 用法代码实例第一步——平稳性分析方法一方法二方法三 第二步——白噪声分析第三步——确定参数第四步——模型构建与检验检验模型效果预测未来数据 前言 常见的时间序列分析方法有很多&#xff0c;之前介绍了一个稍微新颖的 Prophe…

HarmonyOS开发者基础认证试题

文章目录 一、HarmonyOS介绍二、DevEco Studio的使用三、ArkTS语法介绍四、应用程序框架基础五、从简单的页面开始六、构建更加丰富的页面七、从网络获取数据八、保存应用数据 一、HarmonyOS介绍 判断题&#xff1a; 1.“一次开发&#xff0c;多端部署”指的是一个工程&#x…

【GBase 8c V5_3.0.0 分布式部署(单机安装)】

GBase 8c数据库分布式形态采用share nothing的分布式架构&#xff0c;计算节点和存储节点分离。节点间通过高速网络进行通信&#xff0c;所有节点都有主从互备&#xff0c;确保系统的极致高可用。 本文主要包含GBase 8c V5_3.0.0 分布式部署(单机安装)的简单流程&#xff0c;供…

AI创意引擎:优化Prompt提示词的高效提问技巧

AI内容创作的精髓&#xff1a;提示词&#xff08;Prompt&#xff09; 在AI领域中&#xff0c;提示词&#xff08;Prompt&#xff09;是与模型沟通的关键工具。提示词不仅决定了AI生成内容的方向和质量&#xff0c;还在优化模型输出、提升用户体验中扮演着至关重要的角色。因此…

【pgAdmin4】使用psql命令行执行查询时,使用占位符(:v1)传入参数

目录 0.环境 1.相关知识点 2.举例 3.详细操作 0.环境 windows11 pgAdmin4 8.10 1.相关知识点 占位符如何理解&#xff1f; SQL语句中的占位符是一种用于代表参数的特殊符号&#xff0c;通常以"?"或":"开头。它们被用来构建可重用的SQL语句&#xff0…

Grafana 汉化

点击 Home -> Administration 点击 Default preferences 点击 中文&#xff08;简体&#xff09;后点击 Save 即可

遥感技术在生态系统碳储量、碳收支、碳排放、碳循环以及人为源排放反演等领域的技术发展,实践角度解决遥感技术在生态、能源、大气等领域的碳排放监测及模拟问题

卫星遥感具有客观、连续、稳定、大范围、重复观测的优点&#xff0c;已成为监测全球碳盘查不可或缺的技术手段&#xff0c;卫星遥感也正在成为新一代 、国际认可的全球碳核查方法。本教程的目的就是梳理碳中和与碳达峰对卫星遥感的现实需求&#xff0c;系统总结遥感技术在生态系…

唯徳知识产权管理系统 DownloadFileWordTemplate 文件读取漏洞复现

0x01 产品简介 唯徳知识产权管理系统,由深圳市唯德科创信息有限公司精心打造,旨在为企业及代理机构提供全方位、高效、安全的知识产权管理解决方案。该系统集成了专利、商标、版权等知识产权的全面管理功能,并通过云平台实现远程在线办公,提升工作效率。是一款集知识产权申…

Radware Alteon 负载均衡-基于URL Filetype的七层负载均衡

作者&#xff1a;Xiaolei Ren Radware Alteon作为一款高性能的负载均衡器&#xff0c;其基于URL Filetype的七层负载均衡功能为众多企业提供了灵活、高效的解决方案。 该案例实现如下需求&#xff1a;当客户端访问服务器时&#xff0c;默认访问10.200.1.100&#xff0c;在ht…

快手自研Spark向量化引擎正式发布,性能提升200%

Blaze 是快手自研的基于Rust语言和DataFusion框架开发的Spark向量化执行引擎&#xff0c;旨在通过本机矢量化执行技术来加速Spark SQL的查询处理。Blaze在快手内部上线的数仓生产作业也观测到了平均30%的算力提升&#xff0c;实现了较大的降本增效。本文将深入剖析blaze的技术原…

Anaconda 安装与使用教程

Anaconda 安装与使用教程 介绍 Anaconda 是一个用于科学计算的 Python 和 R 的发行版&#xff0c;它包含了众多流行的科学计算、数据分析、机器学习等领域的库。本教程旨在帮助初学者快速上手 Anaconda&#xff0c;并学会如何使用其管理环境以及安装包。 第一步&#xff1a;…

Linux下的gcc与gdb

目录 Linux下的gcc与gdb 代码编译与链接 函数库 gdb介绍和安装 gdb基本使用指令 示例代码 debug模式和release模式 基本指令 进入gdb调试与显示调试代码 创建断点与删除断点 启用和禁用断点 执行代码 逐语句和逐过程调试 断点跳转 显示指定变量以及对应内容 打印变量的值 执行到…

代码随想录算法day30 | 动态规划算法part03 | 01背包问题 二维 ,01背包问题 一维,416. 分割等和子集

正式开始背包问题&#xff0c;背包问题还是挺难的&#xff0c;虽然大家可能看了很多背包问题模板代码&#xff0c;感觉挺简单&#xff0c;但基本理解的都不够深入。 背包问题&#xff0c;力扣上没有原题&#xff0c;题目是在卡码网找的 动态规划&#xff1a;01背包理论基础 本…

简单易懂的方式来解释机器学习(ML)和深度学习(DL)的区别与联系

让我们从多个角度出发&#xff0c;用一些简单易懂的方式来解释机器学习&#xff08;ML&#xff09;和深度学习&#xff08;DL&#xff09;的区别与联系。 1. 概念上的区别 机器学习 想象一下你在教一个小孩子如何分辨猫和狗。你可能会给这个孩子看很多猫和狗的照片&#xff…

Unity-Time类

目录 Time.timeScale Time.deltaTime Time.unscaledDeltaTime Time.time Time.frameCount Time.fixedDeltaTime Time.timeScale 时间缩放比例 时间停止 Time.timeScale 0; //回复正常 //Time.timeScale 1; //2倍速 …

VSCode 离线安装中文语言包

1.插件市场 Extensions for Visual Studio family of products | Visual Studio Marketplace 输入&#xff1a; language 在version history里面下载相应的版本&#xff0c;若没有就下载最新的 在下面安装 安装完重启就可以了。 可能会提示的失败&#xff1a; Unable to ins…

【vscode】 快速生成react组件

在VSCode中快速生成React组件的方法主要包括使用内置的代码片段和安装第三方插件。以下是具体的步骤和方法&#xff1a; 使用内置代码片段‌ VSCode支持用户自定义代码片段&#xff0c;你可以通过输入特定的前缀&#xff0c;然后按下Tab键&#xff0c;来快速生成React组件的基…

Cenos7镜像+Docker问题

前言 好用的镜像 阿里 curl -o /etc/yum.repos.d/Centos7-aliyun.repo https://mirrors.wlnmp.com/centos/Centos7-aliyun-x86_64.repo科大 curl -o /etc/yum.repos.d/Centos7-ustc.repo https://mirrors.wlnmp.com/centos/Centos7-ustc-x86_64.repo网易 curl -o /etc/yum…

概率论原理精解【14】

文章目录 拓扑空间拓扑空间映射一、连续映射二、同胚映射三、开映射与闭映射四、其他映射五、映射空间 第一可数空间第一可数性公理第一可数空间的性质例子与反例 邻域基定义性质例子应用 参考文献 拓扑空间 拓扑空间映射 是一个相当宽泛且复杂的话题&#xff0c;因为拓扑空间…