当前位置: 首页 > news >正文

JAVA练习333- 单词搜索

题目概览

给定一个m x n二维字符网格board和一个字符串单词word。如果word存在于网格中,返回true;否则,返回false

单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。

示例 1:

输入:board = [['A','B','C','E'],['S','F','C','S'],['A','D','E','E']], word = "ABCCED"输出:true

示例 2:

输入:board = [['A','B','C','E'],['S','F','C','S'],['A','D','E','E']], word = "SEE"输出:true

示例 3:

输入:board = [['A','B','C','E'],['S','F','C','S'],['A','D','E','E']], word = "ABCB"输出:false

提示:

  • m == board.length
  • n = board[i].length
  • 1 <= m, n <= 6
  • 1 <= word.length <= 15
  • boardword仅由大小写英文字母组成

进阶:你可以使用搜索剪枝的技术来优化解决方案,使其在board更大的情况下可以更快解决问题?

来源:79. 单词搜索 - 力扣(LeetCode)

解题分析

方法:回溯

我们令当前位置为 i, j,word 的当前索引为 index,那么:

  1. 当 i 或 j 越界时,返回 false
  2. 当 board[i][j] != word[index] 时,无法往下走,返回 false
  3. 当 board[i][j] == word[index] 时,index++,若此时 index == word 长度,返回 true,否则 将当前元素置空,然后朝着四个方向继续遍历,遍历完成后,回溯当前元素和 index

时间复杂度:O(mnx3^L) (其中 m,n 为网格的长度与宽度,L 为字符串 word 的长度)
空间复杂度:O(mn)

class Solution { public static int[][] directs = new int[][]{{1,0},{-1,0},{0,1},{0,-1}}; public boolean exist(char[][] board, String word) { for (int i = 0; i < board.length; ++i) { for (int j = 0; j < board[0].length; ++j) { if (backTracking(i, j, board, word, 0)) { return true; } } } return false; } public boolean backTracking(int i, int j, char[][] board, String word, int wordIndex) { if (i < 0 || j < 0 || i >= board.length || j >= board[0].length || board[i][j] != word.charAt(wordIndex)) { return false; } char temp = board[i][j]; wordIndex++; if (wordIndex == word.length()) { return true; } board[i][j] = '!'; for (int[] direct: directs) { if (backTracking(i + direct[0], j + direct[1], board, word, wordIndex)) { return true; } } wordIndex--; board[i][j] = temp; return false; } }
http://www.jsqmd.com/news/1249838/

相关文章:

  • 口语--我今天干了嘛
  • 2026深度实测:16款降AI率软件测评,论文降重降ai率终极答案!
  • 武汉老板注意:光谷企业做展厅,别再拿“科技感“说事了
  • 从零搭建AI数字人讲师系统:TensorRT加速+教育知识图谱注入+情感微调三步法
  • 2026年Agent开发爆发!小白程序员必备的收藏指南,助你高薪上岸!
  • 系统故障应急方案|两款纯净 PE 维护工具,职场人导航统一汇总
  • 2026年邛崃市管道疏通防坑指南:快达师傅教你避雷 - 余生黄金回收
  • Serverless架构在中小型淘客返利系统开发中的成本与效率权衡
  • AI客服知识库冷启动失效真相:3类隐性语义鸿沟+2套动态校准算法(含Python可运行代码)
  • AI语音多语言配音效率革命:实测8款引擎TTS质量/时延/成本对比,第3名竟被90%企业忽略(2024Q2权威测评报告)
  • 学生工作管理系统介绍及功能特点
  • 2026程序员转型指南:AI时代的技术栈与职业路径
  • HWAG与N2HET:嵌入式高精度角度测量与定时控制实战解析
  • GPT-5.6有哪些核心功能?主要能力与应用场景详解
  • TI微控制器POM模块:嵌入式系统参数在线调试与动态更新的硬件利器
  • 【C++字符串】char*、const char*、char[]和std::string
  • 遗传算法优化BP神经网络回归预测实战
  • 深圳夏令营哪家师资强:军博营地专业深耕 - 18002239949
  • 零点击时代:当AI接管搜索,“被引用“成了新的流量入口
  • UNet 汽车图像分割动画解说
  • OpenClaw本地AI助手部署与定制开发指南
  • 计算机Django毕设实战-社区民生服务与数据可视化监测平台 基于 Python 的智慧社区安防运维系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • ICM创芯微 CM1003-BFD DFN1.9x1.6-6 BMS电池保护芯片
  • 开源cesium快速扩展示例-加载自定义参考系和自定义裁图方案WMTS服务
  • LIN总线硬件机制解析:超时控制、错误检测与消息过滤实战
  • 深度解析离策略强化学习:原理、实现与应用
  • LED驱动电源选型标准与工程避坑要点解析
  • C语言-字符函数和字符串函数
  • 电感基础知识及应用电路Multisim电路仿真
  • Kimi K3大模型实测:两天半让《赤色要塞》在UEFI Shell下完美复现,