概述
题目:
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
给出线性时间复杂度的算法O(N)
2个算法
1.使用count方法
nums1 = set(nums)
for i in nums1:
if nums1=.count(i) == 1:
return i
2.位运算
return reduce(lambda x,y : x^y , nums)
总结
第一个想到的就是使用遍历
结果时间复杂度无线接近超时
第二个想到的是使用计数法
将出现次数记录下来
最后将只出现一次的输出
发现时间复杂度
并没有比第一个快多少
第三个想到的是位运算
根据位运算的3性质
1.任何数和0做异或运算
结果任然是原来的数
2.任何数和其自身做异或运算
结果是0
3.异或运算满足交换律和结合律
根据性质2和性质1
我们就可以得到想到的数了
最后
以上就是阳光巨人为你收集整理的LeetCode136.只出现一次的数字 (Python)的全部内容,希望文章能够帮你解决LeetCode136.只出现一次的数字 (Python)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复