数组总共有101个值。此数组包含1到100之间的数字,并且一个数字重复(两次)。写下伪代码以找到重复的数字。
答案 0 :(得分:0)
如果你想要聪明,请看看哈希。如果你想轻松安全地玩它,用合并排序对列表进行排序然后循环索引可能是最好的。
答案 1 :(得分:0)
我将所有索引加起来[0] - > [100]找出1 + 2 + 3 ... + 100应该等于从你的结果中减去那个,你得到了重复的数字。
所以你只需要一个简单的
for
或while
循环遍历每个索引然后减去2并得到结果。
像...一样的东西。
q = 0;
p = 101 * 50;
for(i<=100; i <array.length; i++){
q += q + array[i]
}
repeating number = q-p;
答案 2 :(得分:0)
试试这个(C#):
int[] array = ... ; // initialize appropriately
var hashSet = new HashSet<int>();
var indexOfDuplicate = -1;
for (var i = 0; i < array.Length; i++) {
if (hashSet.Contains(array[i])) {
indexOfDuplicate = i;
break;
}
hashSet.Add(array[i]);
}
var duplicateNumber = array[indexOfDuplicate];
使用此解决方案,您将获得重复数字的索引(第二次出现)和重复数字。
答案 3 :(得分:0)
设置集;
对于数组中的每个p { set.add(P); }
打印(集);