【发布时间】:2017-06-07 15:01:12
【问题描述】:
我知道在排序数组中查找非重复元素的 XOR 技巧(之前已经问过):
public int singleNumber(int[] nums) {
int result = 0;
for (int i = 0; i < nums.length; i++) {
result = result ^ nums[i];
}
return result;
}
但是我们如何使用相同的逻辑来做相反的事情呢?
更具体地说:考虑一个排序数组,其中每个元素仅出现一次,我们如何找到在 O(1) 空间中重复的元素?
【问题讨论】:
-
Consider a sorted array where **each element but one occurs only once**, how do we find the one element that repeats这句话不是矛盾吗? -
不是完全重复,但另一篇文章中提到的“简单线性搜索”会起作用。
-
第n个,第(n+1)个元素的区别是一样的吗??
-
我发布了自己的解决方案。我想太多了,因为我正在寻找基于 XOR 的解决方案,但我无法弄清楚。