我有一个整数数组列表int [] marks = {2,3,4,5,4,5,6,2,9};
我希望在此列表中获取所有副本,并且数组shold只遍历一次。 没有inbuild函数应该使用因为每个inbuild函数也遍历每个serch。
预期结果应为2,4,5
答案 0 :(得分:1)
好吧,只要资格证明您只能遍历此列表一次,就可以创建另外两个列表,1个非重复列表和1个重复列表。
遍历输入列表,然后检查非重复项是否具有int。如果没有,则添加它,如果是,则将其添加到dups(如果它还没有包含它)。最后,重复应该有您要求的结果。
答案 1 :(得分:1)
int[] marks = { 2, 3, 4, 5, 4, 5, 6, 2, 9 };
Dictionary<int, bool> flags = new Dictionary<int, bool>();
HashSet<int> result = new HashSet<int>();
for (int index = 0; index < marks.Length; index++)
{
if (flags.ContainsKey(marks[index])) result.Add(marks[index]);
else flags.Add(marks[index], true);
}
答案 2 :(得分:0)