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

最长公共子序列---dp

思路:

看似好像可以用双指针或者map集合写,但仔细想一下还是行不通。

dp[i]表示text1在第i个位置上最长的公共子序列。

首先记住一句话,两个字符串做比较,求最长公共子序列,通常用二维dp。

class Solution { public int longestCommonSubsequence(String text1, String text2) { int m = text1.length(); int n = text2.length(); int [][] dp = new int[m + 1][n + 1]; for(int i = 1;i <= m;i ++){ for(int j = 1;j <= n;j ++){ char ch1 = text1.charAt(i - 1); char ch2 = text2.charAt(j - 1); if(ch1 == ch2){ dp[i][j] = dp[i - 1][j - 1]+ 1; }else{ dp[i][j] = Math.max(dp[i - 1][j],dp[i][j - 1]); } } } return dp[m][n]; } }

为什么不能直接写成 m 和 n?

假设:

text1 = "abcde"; // m = 5 text2 = "ace"; // n = 3

如果你写:

int[][] dp = new int[m][n];

数组大小就是:

dp[5][3]

它的合法下标是:

行:0 ~ 4 列:0 ~ 2

但是你的代码最后返回的是:

return dp[m][n];

也就是:

return dp[5][3];

这就越界了,因为最大只能访问:

dp[4][2]

所以会报错:

ArrayIndexOutOfBoundsException
http://www.jsqmd.com/news/883720/

相关文章:

  • 互联网大厂Java面试:从Java SE到Spring Boot的全面探讨
  • 如何高效清理Mac磁盘空间:专业工具Pearcleaner使用指南
  • 南平6月雨季来临,房屋漏水怎么办?卫生间免砸砖防水、外墙、屋面+地下室渗漏。权威防水公司靠谱TOP5推荐(2026年6月本地最新深度调研) - 企业资讯
  • 番茄小说下载器:免费开源工具打造个人数字图书馆终极指南
  • Day4 函数
  • 抖音下载器终极指南:如何快速下载抖音视频和直播回放
  • 马鞍山6月雨季来临,房屋漏水怎么办?卫生间免砸砖防水、外墙、屋面+地下室渗漏。权威防水公司靠谱TOP5推荐(2026年6月本地最新深度调研) - 企业资讯
  • Python Android打包终极指南:5步将Python应用变为Android APK
  • 江苏省丹阳寄快递省钱攻略|本地人私藏靠谱低价寄件渠道,跨省寄件轻松省下一笔钱 - 时讯资讯
  • 2026惠州防水深度测评!破解沿海湿热漏水通病,四大卫生间补漏品牌甄选 - 资讯焦点
  • 如何解锁网易云音乐加密文件?ncmdump让你轻松拥有通用音频格式
  • 2026-05-25 Systematic review of foundation models for structured electronic health records
  • 融合教育影子教师证交钱前怎么判断机构是否正规 - 最新教育培训热点
  • 如何轻松定制COM3D2角色:终极玩家指南与实时编辑器秘籍
  • 2026年Hermes Agent/OpenClaw如何集成?阿里云高可用安装及Token Plan配置
  • Proteus例程导入方法
  • 北京公司注册找谁家?2026最新梯队推荐 + 避坑指南 - 博客湾
  • 扩散模型diffusion
  • 龙岩6月雨季来临,房屋漏水怎么办?卫生间免砸砖防水、外墙、屋面+地下室渗漏。权威防水公司靠谱TOP5推荐(2026年6月本地最新深度调研) - 企业资讯
  • 3步实现浏览器端HTML转Word文档:html-docx-js实战指南
  • 哔哩下载姬DownKyi完整指南:快速获取B站高清视频的终极方案
  • 【AI代码审查新纪元】:DeepSeek为何比GitHub Copilot Code Review准确率高42%?
  • Whisper-WebUI:一站式语音转字幕解决方案在Mac上的完美部署指南
  • 亳州6月雨季来临,房屋漏水怎么办?卫生间免砸砖防水、外墙、屋面+地下室渗漏。权威防水公司靠谱TOP5推荐(2026年6月本地最新深度调研) - 企业资讯
  • 在SCnet上部署70b int4的模型
  • FM广播高精度预加重模块设计:解决传统电路缺陷,提升音质与信噪比
  • 终极3步驱动清理:如何用DriverStore Explorer释放Windows性能
  • 告别短信验证码:在uni-app中集成阿里云一键登录的完整配置与优化心得
  • 为什么你的DeepSeek总生成无效边界值?揭秘LLM测试生成中的3层语义断层与2种对齐方案
  • 分子对接的困境与突围:为什么AutoDock-Vina能成为药物发现的加速引擎?