C语言中分治的思想-位运算
作者:互联网
(1) 有101个整数,其中有50个数出现了两次,1个数出现了一次, 找出出现了一次的那个数。
位运算的思想:任何数和零异或得到自己,任何数自己异或得到0。
eg1.{2,1,5,1,2,2}
num=0 | 0000 0000 |
2 | 0000 0010 |
1 | 0000 0001 |
5 | 0000 0101 |
1 | 0000 0001 |
2 | 0000 0010 |
2 | 0000 0010 |
可以发现,数字5出现一次,用0依次与每个数异或一下,从0000 0010,0000 0011,0000 0110,0000 0111,0000 0101。可以发现最终出现的结果是出现一次的那个数字,为5。
标签:0000,运算,0010,分治,0101,C语言,异或,出现,0001 来源: https://www.cnblogs.com/zt1037054045/p/15838254.html