用于重复数组的Java程序

时间:2014-06-25 20:07:29

标签: java arrays deduplication

有人可以帮忙编写下面的高效java函数吗?

不使用内部排序或重复数据删除功能,请使用包含重复的数组 条目并返回一个没有重复的新数组。例如

deduplicate(array(2,5,10,1, “john" “andy", 5, “peter”, “andy”)) 
  

//返回2,5,10,1,“john”,“andy”,“peter”

1 个答案:

答案 0 :(得分:0)

从基于散列的容器(例如HashMap)开始,对于数组中的每个元素,首先检查它是否存在于容器中,如果不存在则添加它。完成后,将容器中的所有元素作为数组返回。

这将是有效的,因为每次检查以查看元素是否在容器中是O(1)并且每个插入是O(1)。对数组中的每个元素执行此操作是O(n),然后在最后再次检索它们也是O(n),因此最终得到一个O(n)的解决方案。

我将实际执行情况作为练习留给您。