最近我在接受采访时被问到一个非常棘手的问题。
给定一个类似(例如)
现在编写一个优化算法(不使用构建功能,除了像循环等那样的基本功能),以便输出不包含重复值。
请注意:当然我们可以做2个for循环,但它没有优化。他们需要优化的解决方案。
答案 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();