【Java算法】08_异或运算

【Java算法】08_异或运算

异或运算:相同为0,不同为1

能长时间记住的概率接近0%

所以,异或运算就记成无进位相加!

异或运算的性质

1)0^N == N N^N == 0

2)异或运算满足交换律和结合率

如何不用额外变量交换两个数

	// 交换i和j的值
	public static void swap(int i, int j) {
		i = i ^ j;
		j = i ^ j;
		i = i ^ j;
	}

136. 只出现一次的数字

class Solution {
    public int singleNumber(int[] nums) {
        int eor = 0;
        for(int i = 0;i<nums.length;i++){
            eor ^= nums[i];
        }
        return eor;
    }
}

你可能感兴趣的:(java,大数据)