【leetcode78】Single Number II
题目描述:
给定一个数组,里面除了一个数字,其他的都出现三次。求出这个数字
原文描述:
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?
Subscribe to see which companies asked this question
思路:
- 设置一个32位的数组,然然后对数组,Array【i】代表i位的1个数,统计整个数组nums【】的数字,对于每个Array【i】做mod3的运算
- 遍历nums【】数组时候,是左移&1取出,加到Array【i】上面,然后mod3
- 最后右移加到result上面
代码:
// Single Number II
// 方法1,时间复杂度O(n),空间复杂度O(1)
public class Solution {
public int singleNumber(int[] nums) {
final int W = Integer.SIZE; // 一个整数的bit数,即整数字长
int[] count = new int[W]; // count[i]表示在在i位出现的1的次数
for (int i = 0; i < nums.length; i++) {
for (int j = 0; j < W; j++) {
count[j] += (nums[i] >>> j) & 1;
count[j] %= 3;
}
}
int result = 0;
for (int i = 0; i < W; i++) {
result += (count[i] << i);
}
return result;
}
};
更多的leetcode的经典算法,查看我的leetcode专栏,链接如下:
我的微信二维码如下,欢迎交流讨论
欢迎关注《IT面试题汇总》微信订阅号。每天推送经典面试题和面试心得技巧,都是干货!
微信订阅号二维码如下:
【leetcode78】Single Number II的更多相关文章
- 【题解】【位操作】【Leetcode】Single Number II
Given an array of integers, every element appears three times except for one. Find that single one. ...
- 【Leetcode】 - Single Number II
Problem Discription: Suppose the array A has n items in which all of the numbers apear 3 times excep ...
- 【Leetcode】【Medium】Single Number II
Given an array of integers, every element appears three times except for one. Find that single one. ...
- 【leetcode】Single Number II (medium) ★ 自己没做出来....
Given an array of integers, every element appears three times except for one. Find that single one. ...
- 【leetcode】Single Number II
int singleNumber(int A[], int n) { int once = 0; int twice = 0; int three = 0; for (int i = 0; i < ...
- 【LeetCode】Single Number I & II & III
Single Number I : Given an array of integers, every element appears twice except for one. Find that ...
- 【leetcode】Single Number && Single Number II(ORZ 位运算)
题目描述: Single Number Given an array of integers, every element appears twice except for one. Find tha ...
- 【LEETCODE OJ】Single Number II
Problem link: http://oj.leetcode.com/problems/single-number-ii/ The problem seems like the Single Nu ...
- 【03_136】Single Number
感谢:http://www.cnblogs.com/changchengxiao/p/3413294.html Single Number Total Accepted: 103007 Total S ...
随机推荐
- php序列化漏洞理解
0x01什么是序列化 序列化就是将我们的 对象转变成一个字符串,保存对象的值方便之后的传递与使用. 0x02为什么要序列化 如果为一个脚本中想要调用之前一个脚本的变量,但是前一个脚本已经执行完毕,所有 ...
- 剑指架构师系列-spring boot的logback日志记录
Spring Boot集成了Logback日志系统. Logback的核心对象主要有3个:Logger.Appender.Layout 1.Logback Logger:日志的记录器 主要用于存放日志 ...
- Node.js HTTPS
稳定性: 3 - 稳定 HTTPS 是基于 TLS/SSL 的 HTTP 协议.在 Node 里作为单独的模块来实现. 类: https.Server 这是 tls.Server 的子类,并且和 ht ...
- MySQL CURTIME() 函数
定义和用法 CURTIME() 返回当前的时间. 语法 CURTIME() 实例 下面是 SELECT 语句: SELECT NOW(),CURDATE(),CURTIME() 结果如下所示: NOW ...
- 微信自定义菜单url默认80端口问题解决
微信自定义菜单url默认80端口的,但是有些服务器上可能配置了多个tomcat.或者是刚好你服务器上80端口被占用了.在这样的情况下,我们可以通过如下方式解决: 首先安装apache,关于apache ...
- 剑指Offer——常用SQL语句、存储过程和函数
剑指Offer--常用SQL语句.存储过程和函数 常用SQL语句 1.在MySQL数据库建立多对多的数据表关系 2.授权.取消授权 grant.revoke grant select, insert, ...
- 微信小程序发布
一.操作步骤 (1)打开[微信开发者工具]->新建一个默认项目->点击[项目]->点击[上传] (2)使用微信小程序公众平台管理员扫描二维码,在手机微信上点击[确认上传] (3)输入 ...
- Python 函数参数*expression 之后为什么只能跟关键字参数
python 为何要设计这种? 正确: def f(a=2,b=2,c=3): return a+b+c print(f(*(1,1),c=1)) 错误: def f(a=2,b=2,c=3): re ...
- Java 资源本地化与国际化
资源包 在编写应用程序的时候,需要面对的一个问题是如何来处理与locale相关的一些信息.比如,页面上的一些静态文本就希望能够以用户习惯的语言显示.最原始的做法是将这些信息硬编码到程序中(可能是一大串 ...
- JBOSS EAP 6 系列三 Oracle、Mysql数据源的配置(驱动)—认识模块的使用
本文介绍JBOSS EAP 6.2中Oracle数据源的配置方式.结合之前JBOSS EAP 6.2新功能,本文初识JBOSS模块申明式容器这一特性. 模块申明式容器:JBOSS EAP不再有lib的 ...