网站名称及网址/济南做网站比较好的公司

网站名称及网址,济南做网站比较好的公司,WordPress添加前台投稿,游戏代理平台哪个好单词搜索 给出一个二维字符数组和一个单词&#xff0c;判断单词是否在数组中出现&#xff0c; 单词由相邻单元格的字母连接而成&#xff0c;相邻单元指的是上下左右相邻。同一单元格的字母不能多次使用。 数据范围&#xff1a; 0 < 行长度 < 100 0 < 列长度 <…

单词搜索

给出一个二维字符数组和一个单词,判断单词是否在数组中出现,

单词由相邻单元格的字母连接而成,相邻单元指的是上下左右相邻。同一单元格的字母不能多次使用。

数据范围:

0 < 行长度 <= 100

0 < 列长度 <= 100

0 < 单词长度 <= 1000

回溯/深搜

深度优先搜索,我们定义这样一种搜索顺序,即先枚举单词的起点,然后依次枚举单词的每个字母。在这个过程中需要将已经使用过的字母改成一个特殊字母,以避免重复使用字符。

在主函数中两层循环遍历整个二维数组,找出所有满足等于单词第一个字符的,然后创建一个深搜函数,把这个节点的下标.以及第几个字母传入dfs函数,这个函数用于判断单词是否在二维数组中.

dfs函数的函数头:boolean dfs(String[] board, int i, int j, int pos)

//pos是记录搜索到哪个字母了

函数体:从传入的结点开始向四周搜索(可以借助偏移数组)

同时,对搜索过的坐标进行标记,避免重复搜索

如果满足不越界,没判断过且等于对应单词字符,就递归下一个

所有都满足就返回true,反之返回false

结束条件:搜索到单词的最后一个字符

注意:可以将一些函数中用到的数据定义为全局变量,减少参数传递

时间复杂度:单词起点一共有 n2个,单词的每个字母一共有上下左右四个方向可以选择,但由于不能走回头路,所以除了单词首字母外,仅有三种选择。所以总时间复杂度是 O(n2·3k)。 

代码:

import java.util.*;
public class Solution {int m, n;int[] dx = {0, 0, 1, -1};//偏移数组int[] dy = {1, -1, 0, 0};char[] word = {};boolean[][] ans;//用于标记是否已经搜索public boolean exist (String[] board, String _word) {word = _word.toCharArray();m = board.length;n = board[0].length();ans = new boolean[m][n];for(int i = 0; i < m; i++) {for(int j = 0; j < n; j++) {if(word[0] == board[i].charAt(j)) {//遍历所有字母if(dfs(board, i, j, 0) == true) return true;}}}return false;}public boolean dfs(String[] board, int i, int j, int pos) {if(pos == word.length-1) {//pos是记录搜索到哪个字母了return true;}ans[i][j] = true;//标记以搜索for(int a = 0; a < 4; a++) {//上下左右搜索int x = i + dx[a];int y = j + dy[a];if(x < m && x >= 0 && y < n && y >= 0 && !ans[x][y] && board[x].charAt(y) == word[pos+1]) {//没搜索过且字母相等if(dfs(board, x, y, pos+1)) return true;}}ans[i][j] = false;//走到这里说没搜到,更改标记为未搜return false;}
}

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

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

相关文章

【深度学习】多源物料融合算法(一):量纲对齐常见方法

目录 一、引言 二、量纲对齐常见方法 2.1 Z-score标准化Sigmoid归一化 2.2 Min-Max 归一化 2.3 Rank Transformation 2.4 Log Transformation 2.5 Robust Scaling 3、总结 一、引言 类似抖音、快手、小红书等产品的信息流推荐业务&#xff0c;主要通过信息流广告、信…

用C++新建快捷方式

1.创建文件 新建一个文件Ink.cpp,系统会自动生成对应的EXE文件 2.编写代码 #include<stdlib.h> int main(){ system("powershell -command \"$WshShellNew-Object -comObject WScript.Shell; $Shortcut$WshShell.CreateShortcut(\%UserProfile%\\Desktop\\1.…

基于Python的天气预报数据可视化分析系统-Flask+html

开发语言&#xff1a;Python框架&#xff1a;flaskPython版本&#xff1a;python3.8数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 系统登录 可视化界面 天气地图 天气分析 历史天气 用户管理 摘要 本文介绍了基于大数据…

基于Uniapp开发tab选项卡/标签栏前端组件

在开发一些业务场景时候&#xff0c;可能需要切换标签栏来展示不同的信息列表。 为此开发了一个Uniapp组件&#xff08;myTab&#xff09;&#xff0c;下面为组件的展示效果&#xff1a; 案例代码&#xff1a; <template><view class"content"><myt…

文本组件+Image组件+图集

Canvas部分知识补充 元素渲染顺序 以Hierarchy参考 下方物体在上方物体前显示 子物体在父物体前显示 下方物体永远在前显示&#xff0c;无论上方的层次结构 资源导入 绝对路径&#xff1a;C:\Windows\Fonts下的许多字体可以用做UIText的字体资源 图片导入&#xff1a; 1.图…

C++初阶——类和对象(二)

C初阶——类和对象&#xff08;二&#xff09; 本期内容书接上回&#xff0c;继续讨论类和对象相关内容。类和对象属于C初阶部分&#xff0c;主要反映了面向对象编程的三大基本特点之一——封装&#xff0c;在C的学习中占有举足轻重的地位&#xff01; 一、类对象模型 1.如何…

LVGL移植到6818开发板

一、移植步骤 1.lv_config.h 配置文件启动 framebuffer 2、lv_config.h 配置文件关闭SDL 2.修改main.c 去掉SDL输入设备 3.修改Makefile 文件启动交叉编译 去掉警告参数 去掉SDL库 4.交叉编译代码 make clean #清空 ⭐ 必须要清空一次再编译&#xff01; 因为修改了 lv_con…

linux系统命令——权限

一、有哪些权限 读&#xff08;r&#xff09;——对应数字4 写&#xff08;w&#xff09;——对应数字2 执行&#xff08;x&#xff09;——对应数字1 二、权限及数字的对应 4对应r-- 2对应-w- 1对应--x 5对应r-x 6对应rw- 7对应rwx 三、文件的基本属性 如图&#…

Django项目之订单管理part3

一.前言 前面两章已经把登录给做完了&#xff0c;这一章节要说的是登录的校验和登录以后的菜单展示&#xff0c;内容还是很多的。 二.菜单和权限 2.1 是否登录 当我们进入其他的页面&#xff0c;我们首先要判断是否登录&#xff0c;这个时候我们就要借助中间件来做session和…

AI大模型测试用例生成平台

AI测试用例生成平台 项目背景技术栈业务描述项目展示项目重难点 项目背景 针对传统接口测试用例设计高度依赖人工经验、重复工作量大、覆盖场景有限等行业痛点&#xff0c;基于大语言模型技术实现接口测试用例智能生成系统。 技术栈 LangChain框架GLM-4模型Prompt Engineeri…

【论文笔记】Contrastive Learning for Compact Single Image Dehazing(AECR-Net)

文章目录 问题创新网络主要贡献Autoencoder-like Dehazing NetworkAdaptive Mixup for Feature PreservingDynamic Feature Enhancement1. 可变形卷积的使用2. 扩展感受野3. 减少网格伪影4. 融合空间结构信息 Contrastive Regularization1. 核心思想2. 正样本对和负样本对的构建…

异步加载错误如何解决

首先是 提供两张图 如果数据过多的情况下我在所内和住家形式频繁的来回切换 导致数据展示的不一样 大家是不是有这样的问题 这个是导致了数据展示有问题的情况 住家的情况本来是没有几层的 下面我帮大家解决一下 // 防止异步延迟 const Noop () > { } const lhl (resDa…

编译支持 RKmpp 和 RGA 的 ffmpeg 源码

一、前言 RK3588 支持VPU硬件解码&#xff0c;需要rkmpp进行调用&#xff1b;支持2D图像加速&#xff0c;需要 RGA 进行调用。 这两个库均能通过 ffmpeg-rockchip 进行间接调用&#xff0c;编译时需要开启对应的功能。 二、依赖安装 编译ffmpeg前需要编译 rkmpp 和 RGA&#xf…

Java多线程与高并发专题——原子类和 volatile、synchronized 有什么异同?

原子类和 volatile异同 首先&#xff0c;通过我们对原子类和的了解&#xff0c;原子类和volatile 都能保证多线程环境下的数据可见性。在多线程程序中&#xff0c;每个线程都有自己的工作内存&#xff0c;当多个线程访问共享变量时&#xff0c;可能会出现一个线程修改了共享变…

207、【图论】孤岛的总面积

题目 思路 相比于 206、【图论】岛屿数量&#xff0c;就是在这个代码的基础上。先遍历边界&#xff0c;将边界连接的岛屿变为0&#xff0c;然后再计算一遍当前为1的岛屿面积。 代码实现 import collectionsn, m list(map(int, input().split())) graph []for _ in range(n…

【GPT入门】第21课 langchain核心组件

【GPT入门】第21课 langchain核心组件 1. langchain 核心组件2.文档加载器 Document loader3.文档处理器3.1 langchain_text_splitters3.3 FAISS向量数据库和向量检索主要作用应用场景4. 对话历史管理1. langchain 核心组件 模型 I/O 封装 LLMs:大语言模型 Chat Models:一般…

应急响应靶机练习-Linux2

1.背景 前景需要&#xff1a;看监控的时候发现webshell告警&#xff0c;领导让你上机检查你可以救救安服仔吗&#xff01;&#xff01; 挑战内容&#xff1a; &#xff08;1&#xff09;提交攻击者IP &#xff08;2&#xff09;提交攻击者修改的管理员密码(明文) &#xff08;…

分享一个免费的CKA认证学习资料

关于CKA考试 CKA&#xff08;Certified Kubernetes Administrator&#xff09;是CNCF基金会&#xff08;Cloud Native Computing Foundation&#xff09;官方推出的Kubernetes管理员认证计划&#xff0c;用于证明持有人有履行Kubernetes管理的知识&#xff0c;技能等相关的能力…

【最新】 ubuntu24安装 1panel 保姆级教程

系统&#xff1a;ubuntu24.04.1 安装软件 &#xff1a;1panel 第一步&#xff1a;更新系统 sudo apt update sudo apt upgrade 如下图 第二步&#xff1a;安装1panel&#xff0c;运行如下命令 curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o …

UE4-UE5虚幻引擎,前置学习一--Console日志输出经常崩溃,有什么好的解决办法

有些差异 这么牛逼的引擎&#xff0c;居然有这种入门级别的问题&#xff0c;一触发清理&#xff0c;大概率(80%)会崩溃 无论虚幻5还是UE4都有这个问题&#xff0c;挺烦人的 实在忍不了了&#xff0c;这次&#xff0c;今天 就想问问有什么好的处理方法么&#xff1f;&#x…