LeetCode 137 Single Number II
2015-12-01 20:20
330 查看
题目描述
Given an array of integers, every element appears three times except for one. Find that single one.Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
分析
对于数组{1,1,1,2}来说,分析每一位:0 0 0 1
0 0 0 1
0 0 0 1
0 0 1 0
……………
0 0 1 3 (位数)
可以分析,分别计算每一位1的出现次数n,如果n%3==1,那么结果中这一位就应该是1。
代码
[code] public static int singleNumber(int[] nums) { int rt = 0, bit = 1; for (int i = 0; i < 32; i++) { int count = 0; for (int v : nums) { if ((v & bit) != 0) { count++; } } bit <<= 1; rt |= (count % 3) << i; } return rt; }
相关文章推荐
- BZOJ(1096)(斜率优化DP)
- 用js实现每隔一秒刷新时间(含年月日时分秒)
- Android Manifest标签之data, grant-uri-permission, instrumentation, intent-filter
- 常用命令日志查看
- 点击jqGrid表格,弹出需要的表格的数据
- 利用iText.jar操作pdf文档
- 5.11 像素着色器阶段
- 如何设置UITabBar和UINavigationBar的内容
- LeetCode OJ:Jump Game II(跳跃游戏2)
- mql4 upadte history
- dpPOJ 2027 LCIS(最长上升公共子序列)
- Ubuntu离线搭建NFS服务器
- Android并发编程之全方位解析AsyncTask
- Java异常信息处理
- javascript中使用文件系统
- 微信支付与支付宝支付
- vim dos/unix互转
- 数据结构(Java)——堆的应用
- nginx 源码学习笔记(十五)—— ngx_master_process_cycle 多进程(一)
- leetcode Find Median from Data Stream