Single Number

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42713315



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?


思路:

(1)题意为给定1个整形数组,其中数组中除1个元素以外,其它任意元素都出现两次,求只出现1次的元素。

(2)由于题目限制了时间复杂度为线性的,即不能出现屡次for循环,且建议最好不要申请额外的空间。这样,我们就需要思考,如何在遍历数组1次的情况下找出出现1次的元素。斟酌到能否想办法把相同的元素都消除掉,这里我们就需要应用不常见的特殊运算符“^”― 按位异或运算。我们知道异或运算相同的位会消除,例4^4=(2进制)10^(2进制)10=(2进制)00,这样就消除相同的数字。即便数组中相同数字是非连续的,根据加法的交换律,能够得到一样的结果。

(3)希望本文对你有所帮助。

算法代码实现以下:

/**
* @author liqq
*/
public static int singleNumber(int[] A) {
if (A.length == 0)
return A[0];
int x = A[0];
for (int i = 1; i < A.length; i++) {
x = x ^ A[i];
}
return x;
}

波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » Single Number

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡