136. Single Number && 137. Single Number II && 260. Single Number III
2016-05-08 13:26
375 查看
136. Single Number
Given an array of integers, every element appears twice except for one. Find that single one.Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
Hash Table Bit Manipulation
public class Solution { public int singleNumber(int[] nums) { int xor = 0; for(int n : nums) xor ^= n; return xor; } }
137. Single Number II
Given an array of integers, every element appears three times except for one. Find that single one.Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
Bit Manipulation
260. Single Number III
Given an array of numbersnums, 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?
Bit Manipulation
public class Solution { public int[] singleNumber(int[] nums) { // Pass 1 : // Get the XOR of the two numbers we need to find int diff = 0; for (int num : nums) { diff ^= num; } // Get the rightmost different bit between these two numbers. diff &= -diff; // Pass 2 : int[] rets = {0, 0}; //split the two numbers we are looking for into two groups. for (int num : nums) { if ((num & diff) == 0) // the group that has rightmost bit unset. { rets[0] ^= num; } else // the group that has rightmost bit set. { rets[1] ^= num; } } return rets; } }
相关文章推荐
- 行为科学统计第一章知识点总结
- 机器学习中的数理统计与参数估计
- idea新手学习系列之创建maven web项目
- centos 6.5下KVM环境搭建
- Java多线程系列--“JUC线程池”02之 线程池原理(一)
- CVTE暑期实习hr面(C/C++软件研发,已收到offer)
- Android学习笔记-广播机制BoradcastReceiver
- 第10、 11周-【项目-警察和厨师】
- 我的成就故事
- 战略游戏 树形动态规划
- nginx 同步与异步 阻塞与非阻塞
- 最简单的生产者消费者-pthread
- MVC之国际化
- python处理nginx日志,并统计分析---我这个写的处理时间效率不高,有好方法,请大家指正
- UIBezierPath精讲
- c++作业5
- [leetcode] 126. Word Ladder II 解题报告
- 集合框架--ArrayList集合存储自定义对象
- JAVA HttpClient 基本用法
- 大数据第一周总结