博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
只出现一次的数字
阅读量:5227 次
发布时间:2019-06-14

本文共 620 字,大约阅读时间需要 2 分钟。

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

说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

输入: [2,2,1]输出: 1

 

代码:

v1.0 思路:

同样用到了 set(),外加 sum()函数。单倍体求和加倍再减。

class Solution(object):    def singleNumber(self, nums):        """        :type nums: List[int]        :rtype: int        """        return sum(set(nums))*2 - sum(nums)

 

v2.0思路

但是效率太低了,如果加上位运算呢。用异或的方法,可以使效率更快。

class Solution(object):    def singleNumber(self, nums):        """        :type nums: List[int]        :rtype: int        """        a = 0        for i in range(nums):            a = a         return a

 

转载于:https://www.cnblogs.com/guangluwutu/p/10623557.html

你可能感兴趣的文章
时间与时间戳互换
查看>>
rhel7.6上安装Oracle 19.2.0.0 RAC
查看>>
10个关于Android开发的实用教程
查看>>
数据库事务的四大特性以及事务的隔离级别
查看>>
软件研发网站收集
查看>>
C# 中HttpClient的使用中同步异步问题
查看>>
改动Android启动画面
查看>>
1002.写出这个数
查看>>
[BZOJ1316]树上的询问 点分治
查看>>
[转]Go与C语言的互操作
查看>>
Fatal NI connect error 6413的解决办法 http://www.itpub.net/thread-107518-1-1.html
查看>>
博客园首页新随笔联系管理订阅 随笔- 524 文章- 0 评论- 20 hdu-5810 Balls and Boxes(概率期望)...
查看>>
freemarker自定义标签的写法和使用
查看>>
LeetCode - 21. Merge two sorted lists
查看>>
LAMP--源码MySQL集群版搭建
查看>>
C# partial 局部类型
查看>>
实践作业1 第三天
查看>>
虚拟机下安装cad2006和南方cass7.0
查看>>
Oracle tablespace size sql
查看>>
理解爬虫原理
查看>>