有人可以帮忙编写下面的高效java函数吗?
不使用内部排序或重复数据删除功能,请使用包含重复的数组 条目并返回一个没有重复的新数组。例如
deduplicate(array(2,5,10,1, “john" “andy", 5, “peter”, “andy”))
//返回2,5,10,1,“john”,“andy”,“peter”
答案 0 :(得分:0)
从基于散列的容器(例如HashMap
)开始,对于数组中的每个元素,首先检查它是否存在于容器中,如果不存在则添加它。完成后,将容器中的所有元素作为数组返回。
这将是有效的,因为每次检查以查看元素是否在容器中是O(1)并且每个插入是O(1)。对数组中的每个元素执行此操作是O(n),然后在最后再次检索它们也是O(n),因此最终得到一个O(n)的解决方案。
我将实际执行情况作为练习留给您。