lintcode,落单的数 II
2016-12-18 21:54
267 查看
给出3*n + 1 个的数字,除其中一个数字之外其他每个数字均出现三次,找到这个数字。
一刷没ac
解题思路:将每个数字转成bit,每个数字出现n次的话,对应每一位的和模n一定会有一个余数,这个余数就是由出现一次的数字造成的,因此可以求解。
一刷没ac
解题思路:将每个数字转成bit,每个数字出现n次的话,对应每一位的和模n一定会有一个余数,这个余数就是由出现一次的数字造成的,因此可以求解。
public class Solution { /** * @param A : An integer array * @return : An integer */ public int singleNumberII(int[] A) { if(A == null || A.length == 0) return 0; int res = 0; for(int i = 0; i < 32; i++){ int sum = 0; for(int j = 0; j < A.length; j++){ sum += (A[j] >> i) & 1; sum %= 3; } if(sum != 0) res |= (sum<<i); } return res; } }
相关文章推荐
- lintcode 中等题:Singleton number II 落单的数 II
- Lintcode 落单的数 II
- Lintcode落单的数 删除排序数组中的重复数字 II
- LintCode 落单的数 II
- 落单的数 II-LintCode
- ***[Lintcode]Single Number II 落单的数 II
- lintcode 落单的数 II
- LintCode-落单的数 II
- lintcode-83-落单的数 II
- lintcode:排颜色 II
- lintcode-medium-Majority Number II
- 【LintCode】 Backpack II 背包问题II
- lintcode-medium-Ugly Number II
- lintcode: Unique Paths II
- 线段树的构造 II-LintCode
- [LintCode]Paint House II
- LintCode 38 搜索二维矩阵 II
- LintCode : 背包问题 II
- lintcode-搜索旋转排序数组II-63
- LintCode-删除排序数组中的重复数字 II