为什么我会略微减少此dp问题的输出?

问题描述

问题:
给定一个由N个不同整数组成的数组A和一个由整数组成的数组B(不需要是唯一的)。找到最小编号要添加到B才能使A成为子序列的数字。

我的策略:
很简单-找到最长的公共子序列lcs,因此答案是sizeof(A)-lcs。

我的代码

init(frame: CGRect = .zero,with annotation: Annotation) {
    super.init(frame: frame)
    self.annotation = annotation
    configure()
}

我的输出
输出错误。 (主要相差1。)我还在一些测试用例中获得TLE。
有人可以找到我在逻辑或代码方面出问题的地方吗?

解决方法

如果A == [1,2,3,4,5]B == [1,5],则最长公共序列为2,答案为3,但是您只需在3上加上一个数字B即可满足要求。所以总体逻辑似乎不正确