力扣hot100 最长公共子序列 LCS 二维DP 空格技巧

Problem: 1143. 最长公共子序列

文章目录

思路

👨‍🏫 参考

Code

⏰ 时间复杂度: O ( n m ) O(nm) O(nm)

🌎 空间复杂度: O ( n m ) O(nm) O(nm)

Java 复制代码
class Solution {
	public int longestCommonSubsequence(String s1, String s2)
	{
		int n = s1.length();
		int m = s2.length();
		char[] ss1 = (" " + s1).toCharArray();
		char[] ss2 = (" " + s2).toCharArray();
		int[][] f = new int[n + 1][m + 1];
		for (int i = 0; i <= n; i++)
			Arrays.fill(f[i], 1);//有了第一个空格,任何位置的公共子序列长度都是 1 
		
		for (int i = 1; i <= n; i++)
			for (int j = 1; j <= m; j++)
				if (ss1[i] == ss2[j])
					f[i][j] = f[i - 1][j - 1] + 1;
				else
					f[i][j] = Math.max(f[i - 1][j], f[i][j - 1]);
//		减去最开始追加的空格
		return f[n][m] - 1;
	}
}
相关推荐
一路向阳~负责的男人1 分钟前
运动控制算法收录
算法
czt_java2 分钟前
5个核心位运算公式
算法
Doubbbbbbble云29 分钟前
区间合并问题的常见算法模式与优化思路4
java·数据结构·算法
David猪大卫33 分钟前
【C++修炼】哈希表的实现
数据结构·c++·笔记·学习·算法·哈希算法·散列表
hahaha60162 小时前
HLS高层次综合设计技巧--数组
开发语言·嵌入式硬件·算法·fpga开发
不会就选b2 小时前
算法日常・每日刷题--<贪心>10
算法
南京兴帝文化传媒有限公司2 小时前
本地生活服务商户GEO优化技术实践:AI大模型收录机制与地图POI权重算法拆解
大数据·人工智能·算法·生活·geo优化实操·csdn运营技巧·ai内容收录
linx2953 小时前
单元九 · 零基础路线图-第 7–9 周·类与 RAII
c语言·开发语言·数据结构·c++·嵌入式硬件·算法
布莱克6053 小时前
C++ 七大排序算法详解:选择、冒泡、插入、计数、堆、快速与归并排序
数据结构·c++·算法·排序算法
ocean21033 小时前
2025-2026年AI应用开发与Agent面试高频知识点洞察
人工智能·面试·职场和发展