[LeetCode] Single Number III
来源:互联网 发布:葫芦娃爷爷阴谋 知乎 编辑:程序博客网 时间:2024/05/16 10:05
Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once.
For example:
Given nums = [1, 2, 1, 3, 2, 5]
, return [3, 5]
.
Note:
- The order of the result is not important. So in the above example,
[5, 3]
is also correct. - Your algorithm should run in linear runtime complexity. Could you implement it using only constant space complexity?
解题思路
位运算。与Single Number的区别在于首先根据所有元素的亦或结果的某一位是否为1进行分组,然后分别找出每组中的Single Number。
实现代码
Java:
// Runtime: 2 mspublic class Solution { public int[] singleNumber(int[] nums) { int xor = 0; for (int num : nums) { xor ^= num; } int bit = xor & (~(xor - 1)); int single[] = new int[2]; for (int num : nums) { if ((num & bit) != 0) { single[0] ^= num; } else { single[1] ^= num; } } return single; }}
0 0
- [LeetCode] Single Number III
- [leetcode] Single Number III
- [Leetcode]Single Number III
- [leetcode] Single Number III
- Leetcode: Single Number III
- LeetCode || Single Number III
- leetCode---Single Number III
- *LeetCode-Single Number III
- Single Number III -- leetcode
- Leetcode: Single Number III
- [LeetCode] Single Number III
- LeetCode--Single Number III
- leetcode-Single Number III
- LeetCode:Single Number III
- [LeetCode] Single Number III
- LeetCode -- Single Number III
- 【leetcode】Single Number III
- 【Leetcode】Single Number III
- 第三章 分支结构程序
- Python pickle 的 dump() & load()
- Android SDK下载和更新慢的解决方案
- 关于解决未在计算机注册Active控件或者没有Active控件的解决方法
- smarty 在linux 下display 显示空白
- [LeetCode] Single Number III
- 地理编码和反地理编码
- DP--最长上升子序列
- mysql性能优化
- hadoop(2.x)以hadoop2.2为例完全分布式最新高可靠安装文档
- LeetCode17:Letter Combinations of a Phone Number
- 清除浮动(clear float)
- 在指定的 DSN 中,ODBC驱动程序和应用程序之间的体系结构不匹配解决方法
- Ubuntu 14.04.1中安装JDK