我有两个列表列表,子列表代表路径。我想找到所有路径。
List<List<E>> pathList1
List<List<E>> pathList2
当然,天真的解决方案:
List<List<E>> result = new ArrayList<List<E>>();
for(List<E> p1 : pathList1) {
for(List<E> p2: pathList2) {
List<E> newList = new ArrayList<E>(p1.size()+p2.size());
newList.addAll(p1);
newList.addAll(p2);
result.add(newList);
}
}
不相关的理论问题
我最近了解了时间复杂度。所以这是一个自我检查,如果我是正确的,我希望有人可以评论。
让 N = num 个列表在 pathList1
让 M = pathList2 中的 num 个列表
设 X = pathList1 中路径的平均长度
设 Y = pathList2 中路径的平均长度
所以如果被问到“这个函数的复杂性是多少?” 我会给
〜O(NM(X + Y))
我想知道是否有更快的方法来做到这一点?
也许更好的数据结构?
同时做吗?
制造某种“未来”并返回它?(完全披露,我对期货一无所知)。
我对聪明的技巧和独特的解决方案持开放态度,或者纯粹是实用的。
谢谢。