AI算法 每日算法 — 使用java实现最长公共子序列:二维动态规划与最优子结构 问题描述 给定两个序列X和Y,找出它们最长的公共子序列的长度。子序列不要求连续,但要求相对顺序一致。 例如:X = "ABCBDAB", Y = "BDCABA" 最长公共子序列为 "BCBA",长度为4。...
AI算法 每日算法 — 使用java实现编辑距离:Levenshtein动态规划与字符串相似度 问题描述 编辑距离(Edit Distance),又称Levenshtein距离,是指将一个字符串转换为另一个字符串所需的最少单字符编辑操作次数。允许的编辑操作包括:...
AI算法 每日算法 — 使用java实现桶排序:均匀分布数据的分桶策略与局部排序合并 算法概述 桶排序(Bucket Sort)是一种分布式排序算法,由E. J. Isaac和R. C. Singleton于1956年提出。它的工作原理是: 分桶:将待排序数组划分为若干个"桶"...
AI算法 每日算法 — 使用java实现最长递增子序列:动态规划与 patience sorting 二分优化 问题描述 给定一个整数数组 nums,找到其中最长的严格递增子序列的长度。子序列不要求连续,但要求相对顺序不变。 示例:nums = [10, 9, 2, 5, 3, 7, 101, 18],最长递增子序列为...
AI算法 每日算法 — 使用java实现旅行商问题:状态压缩动态规划与贪心近似算法 问题描述 旅行商问题(Traveling Salesman Problem, TSP):给定 n 个城市以及城市之间的距离,求从某个城市出发,经过每个城市恰好一次,最终回到起点的最短路径长度。 TSP...
AI算法 每日算法 — 使用java实现最小覆盖子串:滑动窗口与字符频次映射 问题描述 给定两个字符串 s 和 t,返回 s 中涵盖 t 所有字符的最小子串。如果不存在符合条件的子串,返回空字符串。 示例:s = "ADOBECODEBANC", t = "ABC",最小覆盖子串为...