标签:一次 运算 示例 复杂度 异或 ----- 数组 数字
第5日:只出现一次的数字
题目链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x21ib6/
题目:
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
示例 1:
输入: [2,2,1]
输出: 1
示例 2:
输入: [4,1,2,1,2]
输出: 4
相关标签:位运算、数组
解题:
-
使用位运算
大致思路:
刚开始看到这个题,先想到的事将数组排序,再两两比对,但是就不符合线性时间复杂度了,而且效率也较低。
后来想到位运算中的异或操作,两个相同的数进行异或操作结果是0,如果再异或一个数,就是这个数本身。
也就是说我们把这个数组中的所有数进行异或,结果就是出现了一次的数。
详细代码如下:
标签:一次,运算,示例,复杂度,异或,-----,数组,数字 来源: https://blog.csdn.net/weixin_46804107/article/details/120467803
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。