3
public static List<Integer> returnIntersection(List<Integer> a,List<Integer> b){

    List<Integer> l1=new ArrayList<Integer>(a);
    List<Integer> l2=new ArrayList<Integer>(b);
    l1.retainAll(l2);//find intersection in l2
    l1=removeDuplicates(l1);
    return l1;}

public static List<Integer> removeDuplicates(List<Integer> l) {

Set<Integer> se=new HashSet<Integer>(l);
l.clear();
l=new ArrayList<Integer>(se);
return l;}

上面的代码是返回一个包含 2 个没有重复的列表交集的列表。我的问题是它的时间复杂度是多少?retainAll() 方法的时间复杂度是多少?将列表转换为集合时是否有任何耗时?

4

1 回答 1

2

一个有趣的话题是衡量单个方法的复杂性。有几件事会导致复杂性。

在这里查看如何衡量复杂性

这是一个很好的网站如何计算复杂度

于 2013-03-19T05:20:10.280 回答