Part Three 习题巧解 之 1. 判断奇偶数
Part Three 习题巧解 之 2. 两数交换
3. 只出现一次的数字
3.1 题目描述
3.2 思路讲解
思路讲解之前,请先看清楚题意是其余数字出现了2次,请先思考一下除了一般做法的其他思路,做法尽量往位运算方面靠。
3.2.1 异或法
n^n = 0
0^n = n
将数组中所有的数进行异或即可得到只出现一次的数字
原因:出现两次的数字经过异或会被变成0,而只出现一次的数字会被保留下来
3.2.2 总结
思路:抓住此题的其余数出现的次数都是两次,使得可以使用位运算解决此问题
位运算符的技巧
n^n = 0
0^n = n
3.3 代码实现
3.3.1 C语言
3.3.2 Java
4. 写在最后
系列解题文章已经第三篇了,你是否觉得异或法有许多巧妙之处。希望看完这篇文档的你,能动手验证一下。纸上得来终觉浅,绝知此事要躬行。
5. 文档分享
如果您觉得这份关于只出现一次的数字的文档还不错,尝试点击分享这份文档给好友吧!
作者 @MythicalCreature
于2020 年 08月 17日发布