137. Single Number II
来源:互联网 发布:unity3d入门 编辑:程序博客网 时间:2024/04/27 15:32
题目: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?
思路:
K=3时,异或就不行了。
对操作数每一位进行相加%3,最后值便是结果。
写代码时遇到小困难。(基本功差)
1、如何取某个整数m的第n位
这个比较好弄,(m>>n-1)&1
2、二进制数值怎么相加得到十进制解
这个想了半天。一开始想到移位或,但是脑子又想到进位(太菜)
| <<
public class Solution { public int singleNumber(int[] nums) { int result = 0; for(int i=0;i<32;i++) { int sum = 0; for(int num : nums) { sum += (num>>i)&1; } result |= (sum%3)<<i; } return (int)result; }}
总结:
k=偶数,异或^解决。
k=奇数,对操作数每一位进行相加%k
0 0
- 137.Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- 137. Single Number II
- Linux下Git和GitHub使用方法总结
- 打地鼠游戏
- leetcode---Subsets
- Hbase源码解析和开发实战笔记
- **LINUX**初学者笔记
- 137. Single Number II
- dom4j读取xml信息
- 数据预处理系列:(四)用阈值创建二元特征
- 数据结构(C++语言版)笔记(绪论)
- 2016计算机网络期末复习
- 数据预处理系列:(五)分类变量处理
- 什么是守护进程守护进程
- LaTeX技巧012:Overleaf编辑时中文句号居中显示的问题
- 扩展IDE——为翻译OC头文件增加编写模板OCImport