您的位置:首页 > 其它

Leetcode:136.Single Number 找到数组里面的非重复数字,其他数字也最多重复两次

2017-11-01 11:15 267 查看
题目:Given an array of integers, every element appears twice except for one. Find that single one.

Note:

Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?

中文描述:给定整数数组,除了一个元素之外,每个元素都会出现两次。找到那个单一的。

注意:

您的算法应具有线性运行时复杂度。你可以实现它而不使用额外的内存吗?

/**
* 题目的前提:算法应具有线性运行时复杂度。实现它而不使用额外的内存
* 我拿着这个题我就想着如何排序 如何遍历找到不同的元素
* 但是最后我发现这样做的时间复杂度都肯定大于n
* 看了别人的思路:发现XOR运算可以解决这个问题
* 两个相同的元素XOR之后为0
* 0 XOR Num = Num
* 所以答案也就出来了
* @param nums
* @return
*/
public int singleNumber(int[] nums) {
int rev = 0;
for (int i = 0; i < nums.length; i++) {
rev ^= nums[i];
}
return rev;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐