0

这是一个理论问题,所以我将使用伪代码。

我有一个需要转换为另一个列表的对象列表。

我实现了 Levenshtein 算法,效果很好,但我需要保留对象,而不是创建新对象。我可以暴力破解它,但我宁愿找到一种非 O(n*m) 的方法来做到这一点。

[obj1,obj2,obj3] -> [obj1,obj4,obj5,obj2,obj6,obj3]

obj1,obj2,obj3 必须是同一个对象,其余都是新创建的对象。

有人知道这个的好算法吗?

4

1 回答 1

1

您可以使用模式flyweight,为此您需要在缓存中维护创建的对象。Java 中的字符串就是这种模式的一个很好的例子。

于 2012-08-17T17:41:28.727 回答