1. 在1000个数中删除一个数,要求删除这个数的位置。
求法:将删出前的每个数异或得到a;删掉后的所有数异或得到b;a^b即为删掉的数。
原理a=a^x^x.
2.交换两个变量的位置A-B且不占用其他空间(3次异或)
A:1010 B:1100
A=A^B (A:0110,B:1100)
B=A^B(A:0110,B:1010(原A))
A=A^B(A:1100(原B),B:1010(原A))
1. 在1000个数中删除一个数,要求删除这个数的位置。
求法:将删出前的每个数异或得到a;删掉后的所有数异或得到b;a^b即为删掉的数。
原理a=a^x^x.
2.交换两个变量的位置A-B且不占用其他空间(3次异或)
A:1010 B:1100
A=A^B (A:0110,B:1100)
B=A^B(A:0110,B:1010(原A))
A=A^B(A:1100(原B),B:1010(原A))