异或运算在算法编程题中的应用

异或运算在算法编程题中的应用

一、异或找出只出现一次的数字

思路:任何一个数字,跟自己异或都为0
如果一个数组中,只有一个数字出现一次,而其他数字都是成对出现的话,那么从头到尾将所有数字依次异或的话,最后得到的结果就是这个只出现一次的数字

    int A[] = { 5, 5, 3, 3, 4, 8, 8 };
    int res = 0;
    for (int i = 0; i < 7; i++)
    { res ^= A[i]; }
    cout << res << endl;


  • 应用:

  1. 数组中有连个只出现一次的数字,其余都出现两次

你可能感兴趣的:(编程,算法)