[leetcode]#136. Single Number
来源:互联网 发布:芙莉西亚之虫惑魔淘宝 编辑:程序博客网 时间:2024/06/08 17:38
题意分析:
给定一个数组,每个数都出现了2次,只有一个出现了一次,找出这个数。要求时间复杂度O(n),空间复杂度O(1)。题目思路:
这道题目利用位操作。位操作的异或(^),他的其中一个属性是,n^n = 0, 0^n = n。只要将所有的数都进行异或就得到出现一次的数。- 根据以下几个原则:
1)a ^ a = 0
2)a ^ b ^ a = b ^ a ^ a = b ^ (a ^ a) = b ^ 0 = b
交换律 结合律 - 由于异或运算的性质,两个相同数字的亦或等于0,而任意数字与0的亦或都等于它本身
class Solution(object): def singleNumber(self, nums): """ :type nums: List[int] :rtype: int """ ans = 0 for i in nums: ans ^= i return ans
阅读全文
0 0
- LeetCode 136. Single Number
- [Leetcode] 136. Single Number
- LeetCode 136. Single Number
- 【leetcode】136. Single Number
- 【LeetCode】136. Single Number
- Leetcode 136. Single Number
- leetcode 136. Single Number
- leetcode 136. Single Number
- 136. Single Number LeetCode
- LeetCode 136. Single Number
- LeetCode 136. Single Number
- [LeetCode]136. Single Number
- LeetCode 136. Single Number
- LeetCode *** 136. Single Number
- [LeetCode]136. Single Number
- LeetCode--136. Single Number
- 【leetcode】136. Single Number
- leetcode-136. Single Number
- CF 447B DZY Loves Strings(水题)
- linux 配置ip地址
- 2017.10.24总结与回顾
- Android零基础入门第89节:Fragment回退栈及弹出方法
- dll、com 二进制模块封装内幕
- [leetcode]#136. Single Number
- 程序员不愿意加班的真相
- Twincat3.1 configure
- ffmpeg 推送、保存rtmp 流命令
- 设置Linux内核参数
- centos6 安装配置zookeeper
- 【转载备】更新整个maven工程及相关底层并再运行的记录
- Android设备在切换网络时,屏幕突然白屏
- 关于android Could not lock surface问题