leecode题目描述如下:

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

思路:

最开始想到的是使用排序,排序之后就很容易找到非重复元素了。

后面看到网上有更巧妙的解决办法,即使用异或来找出非重复元素,因为重复的元素经异或之后就互相抵消为0了,最后数组各个元素经过异或计算之后的结果就是那个唯一的非重复元素。

代码:

class Solution(object):
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
num = 0
for i in nums:
num = num ^ i
return num def stringToIntegerList(input):
return json.loads(input) def intToString(input):
if input is None:
input = 0
return str(input) def main():
import sys
def readlines():
for line in sys.stdin:
yield line.strip('\n')
lines = readlines()
while True:
try:
line = lines.next()
nums = stringToIntegerList(line) ret = Solution().singleNumber(nums) out = intToString(ret)
print out
except StopIteration:
break if __name__ == '__main__':
main()

最新文章

  1. 【BZOJ-4197】寿司晚宴 状压DP
  2. 1.2、Workspace中让Package分层显示
  3. IIS MIME类型大全
  4. Scala学习之: Hello Word!
  5. [zz]Java中的instanceof关键字
  6. 连续多行输入--C++ 中字符串标准输入的学习及实验(续篇)
  7. Archlinux 安装配置指导 2015-05-24
  8. LeetCode之“排序”:Largest Number
  9. iOS-ERROR ITMS-90086:"missing 64-bit support...解决办法
  10. 企业IT管理员IE11升级指南【13】—— 如何把IEMP迁移到GPP
  11. MYSQL数据库安装记
  12. CentOS7安装搭建.Net Core 2.0环境-详细步骤
  13. 高性能mysql之慎用BLOB与TEXT
  14. 网络编程(2)—UDP
  15. Spring Boot 整合Mybatis非starter时,mapper一直无法注入解决
  16. 详解Cookie纪要
  17. 009 jquery过滤选择器-----------(表单对象属性过滤选择器 与 表单选择器)
  18. NumPy与ndarray简介(转)
  19. HDU 1541 Stars (线段树)
  20. python之路----面向对象进阶一

热门文章

  1. C#窗体-猜数字
  2. 项目总结20:阿里云免费https证书申请
  3. Centos7下面配置客户端OpenVPN
  4. Kubernetes helm配置国内镜像源
  5. python websocket 再线聊天室的 Demo
  6. 分析easyswoole3.0源码,服务启动为例(二)
  7. 20165213 Exp1 PC平台逆向破解
  8. 文件操作命令(del)
  9. BSOJ3760||洛谷P1453 城市环路 题解
  10. Java-常用工具方法