形成目标字符串需要的最少字符串数 I
形成目标字符串需要的最少字符串数 I(medium)
做题过程
想到了KMP,也想到了DP,但是因为都不是非常熟悉,所以没有实现出来。
算法概述
本题要求为给出目标字符串,要求从给出的字符串数组中取各字符串的前缀拼接成目标字符串,返回需要最少的字符串(前缀)数量。 KMP+动态规划 。
- 时间复杂度为:k为单词数量,构造KMP
- 空间复杂度为:最大为KMP
JAVA
1 | class Solution { |
总结
首先, KMP 一定要背下来。其次,要记住这里的动态规划的结构实际上把最优解的求解过程从状态转移方程中分离了出去,也就是back[]
和之前words
的遍历放在了一起,状态转移方程就只需要处理起始边界了。
12.18的II也是一样的题,加了一个数量级,没区别了就
- Title: 形成目标字符串需要的最少字符串数 I
- Author: tobegold574
- Created at : 2024-12-17 09:50:24
- Updated at : 2025-03-26 14:58:13
- Link: https://tobegold574.me/2024/12/17/形成目标字符串需要的最少字符串数-I/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments