^为异或,计算时先把两个数转换为二进制,再进行计算。
两个不同的值异或结果为1,两个相同的数异或后值为0
所以判断Int型数组中的唯一值,就用异或来把数组中的每一个值进行比较即可。
示例:
/** * ^为异或,计算时先把两个数转换为二进制,再进行计算。 * 两个不同的值异或结果为1,两个相同的数异或后值为0 * 所以判断Int型数组中的唯一值,就用异或来把数组中的每一个值进行比较即可。 * @param A int整型一维数组 * @return int整型 */ public int singleNumber (int[] A) { // write code here int sum=A[0]; for(int i=1;i<A.length;i++){ sum^=A[i]; } return sum; }