删除给定数组的重复值的优化方法

时间:2014-07-09 07:13:17

标签: java c# c

最近我在接受采访时被问到一个非常棘手的问题。

  1. 给定一个类似(例如)enter image description here

  2. 的数组
  3. 现在编写一个优化算法(不使用构建功能,除了像循环等那样的基本功能),以便输出不包含重复值。

  4. 请注意:当然我们可以做2个for循环,但它没有优化。他们需要优化的解决方案。

7 个答案:

答案 0 :(得分:3)

在c#中,只需使用System.Linq Distinct方法。

示例

var stringArray = { "0", "1", "5", "65", "r" };
var uniqueStringArray = stringArray.Distinct().ToArray();

更多信息

答案 1 :(得分:1)

您可以使用修改后的合并排序。您将数组表示为两个数组,并将它们合并,但是当您在合并操作中找到相等的值时,则会抛出其中一个数组。

答案 2 :(得分:0)

在LinQ中可能的

strarray = Your array.
strarray.Distinct().ToArray()

答案 3 :(得分:0)

对于C#,您可以这样做:

var result = new HashSet<string>(yourArray);

答案 4 :(得分:0)

在Java中将数组放入Set

请参阅http://docs.oracle.com/javase/7/docs/api/java/util/Set.html

答案 5 :(得分:0)

在java中,您可以使用Set

将所有元素添加到Collections#addAll()
Set<T> data = new HashSet<T>();
Collections.addAll(data, yourArray);

PS:Set是一个不包含重复元素的集合。

答案 6 :(得分:0)

`var stringArray = {&#34; 0&#34;,&#34; 1&#34;,&#34; 5&#34;,&#34; 65&#34;,&#34; r&# 34; }; var uniqueStringArray = stringArray.Distinct()。ToArray();