最长公共子序列(简化代码)
2017-10-16 22:19
260 查看
链接:https://www.nowcoder.com/questionTerminal/c996bbb77dd447d681ec6907ccfb488a 来源:牛客网 /* 0 1 2 3 4 5 j i0 1 2 3 4 i=j=0时,dp[i][j]=0 A[i]=B[j]时(从1计数),dp[i][j]=dp[i-1][j-1]+1 A[i]!=B[j]时,dp[i][j]=max(dp[i][j-1],dp[i-1][j]) */ import java.util.*; public class LCS { public int findLCS(String A, int n, String B, int m) { // 行对应A,比A长1,原因是0作为初始化。列同理。dp [m]指A[n-1],B[m-1] int[][] dp = new int[n+1][m+1]; for(int i=0;i<dp.length;i++){ dp[i][0]=0; } for(int i=0;i<dp[0].length;i++){ dp[0][i]=0; } //事实上,数组默认也是0 for(int i=1;i<dp.length;i++){ for(int j=1;j<dp[0].length;j++){ //如果是字符串,用equals,由于charAt()是字符,可以运算,故可以用== if(A.charAt(i-1)==B.charAt(j-1)){//A[0]==B[0],对应dp[1][1] dp[i][j]=dp[i-1][j-1]+1; }else{ dp[i][j]=Math.max(dp[i][j-1],dp[i-1][j]); } } } return dp [m]; } }
相关文章推荐
- JedisUtil再封装(基于连接池,简化代码)
- 编写可读代码的艺术(第二部分 简化循环和逻辑)
- SQL Server Management Object(SMO)大大简化数据库工具的开发 几行代码开发功能强大的SQL工具
- SHOPNC所有分类代码简化版
- 【SSH 框架项目的搭建--简化版】使用注解代替xml中的<bean>,减少代码量
- 一起谈.NET技术,改善代码设计 —— 简化条件表达式(Simplifying Conditional Expressions)
- 代码简化造成的一个不可预知的问题
- TiXmlHandle的使用-简化tinyxml的代码
- 《编写可读代码的艺术》读书笔记(下)简化循环和逻辑和重新组织代码
- Water for asp.net 之十三:用代码生成机简化开发
- [教程]JS从糊涂到明白:一步一步编写计算器2 – 简化代码
- 使用反射简化ajax中的处理代码(.NET版)
- 简化ActivityIndicatorView的创建和使用代码
- struts2 paramsPrepareParamsStack拦截器简化代码(源码分析)
- [译文] 使用JNA来简化对本地代码的访问[三]
- Sqlserver存储过程和C#分页类简化你的代码
- Lombok 简化java代码注解
- Lombok 简化java代码注解
- Java代码简化
- platform平台设备驱动简化示例代码