一尘不染

如何在经过改组的连续整数数组中找到重复的元素?

algorithm

我最近在某个地方遇到了一个问题:

假设您有一个1001个整数的数组。整数按随机顺序排列,但是您知道每个整数都在1到1000(含)之间。此外,每个数字在数组中仅出现一次,但一个数字出现两次。假设您只能访问一次数组的每个元素。描述找到重复数字的算法。如果在算法中使用了辅助存储,是否可以找到不需要它的算法?

我感兴趣的是 第二部分 ,即 不使用辅助存储 。你有什么主意吗?


阅读 228

收藏
2020-07-28

共1个答案

一尘不染

只需将它们加起来,然后减去如果只使用1001个数字,便可以得到的总数。

例如:

Input: 1,2,3,2,4 => 12
Expected: 1,2,3,4 => 10

Input - Expected => 2
2020-07-28