描述
在一个整型数组中,只有一个元素是只出现一次,其他元素都是出现两次的,如何找到这一个只出现一次的元素。
分析
一,使用额外空间
借助字典这种数据结构,在遍历数组时,使用数组中的数值为key,数值出现的次数做为value,遍历完数组后再遍历构造的字典对象,即可找出只出现了一次的元素;
二,不使用额外空间
使用异或操作,只要出现偶数次的数值都可以清0。
实现
// Single Number
int singleNumber(int a[], int len)
{
int num = 0;
for(int i=0; i<len; i++) {
num ^= a[i];
}
return num;
}
网友评论