一.题目要求
二.问题分析
1.循环遍历
起初我的思路是利用数组来存储这一大串数字,之后利用两次for循环,以count来计算某一个数字出现的次数,最后来根据count对2取余进行操作判断,代码如下。
但是该方法空间复杂度较高,因此在要输入的数字个数n较大时,无法通过运行。
因此我们需要转换思路,利用二进制异或的方法来操作。
2.异或操作
首先我们来看异或的性质。
异或运算性质
- a ^ a = 0
- 0 ^ a = a
- x ^ x ^ x ^ y = x ^ y
总结:利用异或运算可以算出出现奇数次的数字