只出现一次的数字
一、题目描述
给定一个数组,找出其中只出现一次的数字。其余数字都是出现两个以上。
示例
输入: [2,2,1]
输出: 1
输入: [4,1,2,1,2]
输出: 4
二、解题思路
这个题在不考虑时间和空间的情况下。有许多解法。遍历数组,使用map集合统计数字出现的次数。还有其他。但是线性时间复杂度并不使用其他额外的空间的情况下,可以使用位运算。
三、解题方法
方法1
位运算,任何数与任何数做位运算都是0,任何书和0作位运算。都是任何数,然而遍历数组,每一个数依次作位运算,最后剩下的就是那个只出现一次的数字。
代码实现
class Solution {
public int singleNumber(int[] nums) {
int single = 0;
for(int num: nums){
single ^= num;
}
return single;
}
}
标签:一次,数字,int,single,数组,出现,运算
From: https://www.cnblogs.com/zjjtt/p/16782968.html