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

060单词搜索

单词搜索题目链接https://leetcode.cn/problems/word-search/description/?envTypestudy-plan-v2envIdtop-100-liked我的解答int[] directionX new int[]{1,-1,0,0}; int[] directionY new int[]{0,0,1,-1}; boolean[] visited; public boolean exist(char[][] board, String word) { int m board.length, n board[0].length; visited new boolean[m*n]; boolean flag false; for(int i0; im; i){ for(int j0; jn; j){ if(board[i][j] word.charAt(0)){ visited[i * n j] true; flag dfs(board, word, i, j, 0); visited[i * n j] false; if(flag){ break; } } } if(flag){ break; } } return flag; } public boolean dfs(char[][] board, String word, int x, int y, int cur){ if(cur word.length()-1){ return true; } int m board.length, n board[0].length; boolean valid false; for(int i0; i4; i){ int xx x directionX[i]; int yy y directionY[i]; if(xx 0 xx m yy 0 yy n visited[xx * n yy] false board[xx][yy] word.charAt(cur1)){ visited[xx * n yy] true; valid dfs(board, word, xx, yy, cur1); visited[xx * n yy] false; if(valid){ break; } } } return valid; }分析代码的时间复杂度为O(m * n * 3^L)其中L为字符串word的长度空间复杂度为O(m*n)。解题思路采用基本的递归回溯方法解题思路较简单故不赘述。看了官方题解后的解答public boolean exist(char[][] board, String word) { int h board.length, w board[0].length; boolean[][] visited new boolean[h][w]; for (int i 0; i h; i) { for (int j 0; j w; j) { boolean flag check(board, visited, i, j, word, 0); if (flag) { return true; } } } return false; } public boolean check(char[][] board, boolean[][] visited, int i, int j, String s, int k) { if (board[i][j] ! s.charAt(k)) { return false; } else if (k s.length() - 1) { return true; } visited[i][j] true; int[][] directions {{0, 1}, {0, -1}, {1, 0}, {-1, 0}}; boolean result false; for (int[] dir : directions) { int newi i dir[0], newj j dir[1]; if (newi 0 newi board.length newj 0 newj board[0].length) { if (!visited[newi][newj]) { boolean flag check(board, visited, newi, newj, s, k 1); if (flag) { result true; break; } } } } visited[i][j] false; return result; }分析​ 1、代码的时间复杂度为O(m * n * 3^L)其中 M,N 为网格的长度与宽度L 为字符串 word 的长度。空间复杂度为O(m*n)。​ 2、官方解答的思路与我的解答思路一致故不重复赘述。总结本题只需掌握基础的递归 回溯即可。
http://www.rkmt.cn/news/1405580.html

相关文章:

  • SSHFS终极指南:5分钟掌握远程文件系统挂载的完整教程
  • 告别UE4纹理流送内存警告:深入理解r.Streaming命令族与性能调优实战
  • 如何用F3工具三步检测U盘和SD卡真实容量:告别存储欺诈
  • 2026工业设备Google推广怎么做?整合海外社媒推广类与AI外贸精准获客系统提升获客能力(附带联系方式) - 品牌2025
  • 如何突破Windows窗口限制:SRWE窗口编辑器完全指南
  • Chroma Context-1部署指南:从模型加载到代理框架集成
  • Segment-FA:解决深度包检测中正则表达式状态爆炸的创新架构
  • NuExtract-1.5-tiny-GGUF未来展望:路线图与技术发展趋势分析
  • 物联网安全基石:BORON超轻量级密码算法设计与实现解析
  • 基于整数线性规划的大模型自动并行策略:以最小化内存冗余为核心
  • 如何永久激活IDM?完整免费激活指南与脚本使用教程
  • 终极免费视频下载工具:3分钟搞定全网热门平台资源保存
  • FSearch:3分钟掌握Linux极速文件搜索,告别find命令的漫长等待
  • FlicFlac终极指南:Windows平台上最简单快速的免费音频格式转换器
  • AI智能体身份管理:从隐形风险到安全基石的实践指南
  • 别再死记Role了!用‘玩家-服务器-观众’三角关系,彻底搞懂UE4网络同步权限
  • 如何快速美化Nginx配置:终极格式化工具完全指南
  • 无人机实时动态避障:分布鲁棒加速控制屏障函数(DR-ACBF)原理与实践
  • Miner-8B-i1-GGUF社区贡献指南:如何参与模型量化与优化
  • 【PCB Layout实战】从源头到路径:构建稳健信号系统的抗干扰设计策略
  • Taotoken API Key的精细化管理与访问审计功能实践分享
  • 终极NPU部署教程:GritLM-7B-KTO在国产硬件上的高效运行方案
  • PakePlus完整指南:5分钟将网站变身为轻量级桌面和手机应用
  • 解构Java布尔类型:从栈内存到堆内存的跨越
  • LookScanned.io:三步将电子PDF变成专业扫描件
  • 为规避 Claude Code 封号风险而迁移至 Taotoken 的接入方案
  • Taotoken 为开发者提供的 OpenAI 兼容协议在迁移现有项目时的便利性体验
  • 学Agent应该先学什么?这几个底层硬技能才是通关密码
  • 广东全域高性价比办公室空间装修设计公司排行盘点 - 互联网科技品牌测评
  • 2026合肥卖黄金别瞎跑!实测三家靠谱回收店,全城上门不踩坑 - 润富黄金珠宝行