[LeedCode] Single Number II
来源:互联网 发布:法兰绒格子衬衫 知乎 编辑:程序博客网 时间:2024/06/05 19:22
Given an array of integers, every element appears three times except for one, which appears exactly once. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
Subscribe to see which companies asked this question.
/** * 时间复杂度O(n) * key:位运算 */ public class Solution { public int singleNumber(int[] nums) { int ones = 0, twos = 0; for (int i = 0 ;i < nums.length;i++) { ones = (ones ^ nums[i]) & (~twos); twos = (twos ^ nums[i]) & (~ones); } return ones; }}
解析:
[5,5,5,1],举例假设nums[i] = 5,二进制为nums[i] = 101;
1. 第一次碰到nums[i],ones = nums[i] ; twos = 0 ;
ones = 0, twos = 0;
ones = (ones ^ nums[i]) & (~twos) = ( 000 ^ 101 ) & 111 = 101;
twos = (twos ^ nums[i]) & (~ones) = ( 000 ^ 101 ) & 010 = 0;
2. 第二次碰到nums[i],ones = 0 ; twos = nums[i] ;
ones = 0, twos = nums[i];
ones = (ones ^ nums[i]) & (~twos) = ( 101 ^ 101 ) & 111 = 0;
twos = (twos ^ nums[i]) & (~ones) = ( 000 ^ 101 ) & 111 = 101;
3. 第三次碰到nums[i],ones = 0 ; twos = 0 ;
ones = (ones ^ nums[i]) & (~twos) = ( 000 ^ 101 ) & 010 = 0;
twos = (twos ^ nums[i]) & (~ones) = ( 101 ^ 101) & 111 = 0;
- [LeedCode] Single Number II
- [LeedCode OJ]#137 Single Number II
- [LeedCode OJ]#136 Single Number
- Single Number & Single Number II
- Single Number & Single Number II
- [LeedCode OJ]#260 Single Number III
- Single Number II - leetcode
- Leetcode: Single Number II
- Single Number II
- Single Number II
- [LeetCode] Single Number II
- LeetCode: Single Number II
- leetcode -- Single Number II
- [leetcode]Single Number II
- [LeetCode] Single Number II
- 【leetcode】Single Number II
- Single Number I & II
- LeetCode:Single Number II
- git add -A , git add . ,git add -u三者的区别
- 放大镜效果
- vue笔记-----component粒子2
- nodejs与npm升级到最新版本的方法
- android studio 2.3 NDK
- [LeedCode] Single Number II
- MySql之约束
- 树形结构
- Codeforces Round #403 D. Innokenty and a Football League(思维+模拟)
- DrawableLayout实现仿QQ侧滑菜单
- Unicode和Utf-8
- 35 个 Java 代码性能优化总结
- Linux学习日志(2)
- dm8168下qt界面与视频的同步显示