我是靠谱客的博主 阳光巨人,最近开发中收集的这篇文章主要介绍LeetCode136.只出现一次的数字 (Python),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目:

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

给出线性时间复杂度的算法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)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部