位运算-Single Number II(给定一个数组,除了一个数字出现一次,其他都出现三次,求出现一次的数)
来源:互联网 发布:js小数点后最多写两位 编辑:程序博客网 时间:2024/05/29 13:12
题目描述:
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?
思考:
需要线性的时间,也就是遍历一次把和n有关,空间是常数。学习了网上的方法,int四个字节,一共32位,依次保存从1到32的位置上这个数组中二进制表示在当前位置出现1的次数,再遍历32个位置上的次数,分别和3求余,如果出现余数为1,说明这个1就是我们要找的那个数的二进制表示相对位置的1,然后使用左移位配合或运算组装我们要的那个数。
代码:
public int singleNumber(int[] nums) {int[] bitCountForOne = new int[32];int res = 0;for(int i = 0 ; i < 32 ; i++){for( int ii = 0 ; ii < nums.length ; ii++){bitCountForOne[i] += (nums[ii]>>i & 1);}res |= (bitCountForOne[i]%3)<<i;}return res;}
0 0
- 位运算-Single Number II(给定一个数组,除了一个数字出现一次,其他都出现三次,求出现一次的数)
- 给定一个数组 AA,除了一个数出现一次之外,其余数都出现三次。找出出现一次的数。
- 给定一个数组,除了两个数只出现一次以外,其他数都出现了两次。
- Java__给定一个数组 AA,除了一个数出现一次之外,其余数都出现三次。找出出现一次的数。
- 给定整数数组,除了一个元素之外,每个元素都出现三次。 找到那个只出现一次的数
- 找出除一个数只出现一次外其他数都出现两次的数Single Number II
- 一个整型数组里除了一个数字之外,其他的数字都出现了两次,找出出现一次的数字
- Single Number II -- 找出数组中唯一出现一次的数,其它数都出现了三次
- 位运算-Single Number (求一个给定数组的出现次数为单数的那个数)
- 【leetcode】在一堆每个数字都出现三次的数组中,找到那个只出现一次的数(Single Number II)
- 一个数组除了一个元素只出现一次,其他元素全都出现了三次,输出出现一次的元素
- 一个整型数组里除了两个数字之外,其他的数字都出现了两次。查出其他两个只出现一次的数
- 一个整数型数组里除了俩个数字之外,其他的数字都出现俩次,求找出这俩个只出现一次的数字
- 一个数组中,除了有两个数字只出现一次外,其他数字都出现两次,求出这两个出现一次的数字
- 一个java数学题,给定一个数组,除了一个数出现1次之外,其余数都出现3次,输出出现一次的那个数。
- 一个java数学题,给定一个数组,除了一个数出现1次之外,其余数都出现3次,输出出现一次的那个数。
- 求数组中只出现一次的数,其他数都出现三次
- 求一个整型数组中,只有一个数出现一次,其他的数都出现2次,求这个数?
- 参数使用
- GitHub 流行开源库
- 【Android】Activity之间的切换效果定义
- hrbust 1687/哈理工oj 1687 买房子【二维最短路+SPFA】
- 博客开通
- 位运算-Single Number II(给定一个数组,除了一个数字出现一次,其他都出现三次,求出现一次的数)
- 红黑树的实现
- mysql存储过程中使用事务
- 属性与方法. this、super关键字
- 简单实现倒数读秒
- 剑指offer34--两个链表第一个公共结点
- 利用python进行数据分析-数据聚合与分组运算1
- ==和equals怎么用?java如何判断相等
- cin、cin.get()、cin.getline()、getline()、gets()等函数的用法