我最近在某个地方遇到了一个问题:
假设您有一个1001个整数的数组。整数按随机顺序排列,但是您知道每个整数都在1到1000(含)之间。此外,每个数字在数组中仅出现一次,但一个数字出现两次。假设您只能访问一次数组的每个元素。描述找到重复数字的算法。如果在算法中使用了辅助存储,是否可以找到不需要它的算法?
我感兴趣的是 第二部分 ,即 不使用辅助存储 。你有什么主意吗?
只需将它们加起来,然后减去如果只使用1001个数字,便可以得到的总数。
例如:
Input: 1,2,3,2,4 => 12 Expected: 1,2,3,4 => 10 Input - Expected => 2