我最近在做一些编码挑战,这是其中一个问题.
给出了由N个整数组成的非空零索引数组A. 该数组包含奇数个元素,并且该数组的每个元素可以与具有相同值的另一个元素配对,除了一个未配对的元素.找到不成对的价值.例如,给定数组A:A [0] = 9 A [1] = 3 A [2] = 9 A [3] = 3 A [4] = 9 A [5] = 7 A [6] = 9功能应该返回7.
完成自己的工作后,我遇到了这个解决方案.
public int solution(int[] A) {
int r = 0;
for(int i=0;i<A.length;i++)
r ^=A[i];
return r;
}
Run Code Online (Sandbox Code Playgroud)
我对这段代码感到惊讶.我以前从未见过独有的OR赋值运算符,并且想知道这个解决方案是如何工作的.如果有人能够引导我完成这个简单的代码并解释它是如何工作的那将是美妙的.