Single Number II
来源:互联网 发布:织梦cms如何仿站 编辑:程序博客网 时间:2024/06/06 21:45
Given an array of integers, every element appears three times except for one. Find that single one.
这一题好难啊。一点头绪都没有,要求是线性时间复杂度,同时要求常数项空间。
答案上,是这样来的。使用了位运算。ps:感觉用到位运算的题目都好难。
如果对所有数字的第i位bit进行统计的话,会发现对3取余之后只会出现0或者1.因为每个数要不出现三次要不就只出现1次。
通过这个规律可以得到以下代码:
public class Solution { public int singleNumber(int[] nums) { int count[] = new int[32]; int result = 0; for(int i=0; i<32; i++) { count[i] = 0; for(int j = 0; j<nums.length; j++) { count[i]+=((nums[j]>>i)&1); } result |= ((count[i]%3)<<i); } return result; }}
0 0
- Single Number & Single Number II
- Single Number & Single Number II
- 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
- Leetcode: Single Number II
- Single Number II
- leetcode :Single Number II
- Leetcode Single Number II
- 详解VMware Workstation 12 安装虚拟机
- Java实现简易的文本编辑器
- 黑马程序员——反射其他
- 【Nutch】Solr4.6搭建
- Nutz笔记-数据库篇
- Single Number II
- tabbarcontronller
- 交叉验证(Cross Validation)
- 工欲善其事,必先利其器
- ConcurrentHashMap
- eclipse 插件 代码提示 C C++
- 虚拟化三剑客专题-XenServer(上)
- 解决TortoiseGit图标不显示
- ubuntu14.04 安装及配置sublime text 3