Java 验证代码的空间复杂度以消除重复 @SuppressWarnings(“未选中”) 公共静态列表删除副本(列表列表){ Set Set=新哈希集(列表); return(List)Arrays.asList(set.toArray()); }

Java 验证代码的空间复杂度以消除重复 @SuppressWarnings(“未选中”) 公共静态列表删除副本(列表列表){ Set Set=新哈希集(列表); return(List)Arrays.asList(set.toArray()); },java,complexity-theory,space-complexity,Java,Complexity Theory,Space Complexity,想要检查上面简单代码的空间复杂度以消除重复 成套存储->O(n) 由于set.toArray-O(n)而生成的阵列中的存储 新创建列表中的存储-O(n) 总O(3n),与O(n)相同 你能帮我确认一下吗?基本上是的。总空间利用率为O(N),其中最终(消除重复)列表大小为N 但是Arrays.asList(…)正在创建一个占用O(1)空间(除了它正在包装的数组之外)的包装器。问题是什么??:\ @SuppressWarnings("unchecked") public static <T&g

想要检查上面简单代码的空间复杂度以消除重复

  • 成套存储->O(n)
  • 由于set.toArray-O(n)而生成的阵列中的存储
  • 新创建列表中的存储-O(n)
  • 总O(3n),与O(n)相同


    你能帮我确认一下吗?

    基本上是的。总空间利用率为
    O(N)
    ,其中最终(消除重复)列表大小为
    N


    但是
    Arrays.asList(…)
    正在创建一个占用
    O(1)
    空间(除了它正在包装的数组之外)的包装器。

    问题是什么??:\
    @SuppressWarnings("unchecked")
    public static <T> List<T> eliminateDuplicate(List<T> list) {
        Set<T> set = new HashSet<T>(list);
        return (List<T>) Arrays.asList(set.toArray());
    }