求数组中只出现一次的数,其他数都出现三次
来源:互联网 发布:二代防火墙 知乎 编辑:程序博客网 时间:2024/05/29 03:57
package 数组;
//求数组中只出现一次的数,其他数都出现三次
public class Find2numAppear {
public static void main(String[] args) {
int[]a={1,1,3,1,3,3,4,4,2,4};
int num=find(a);
System.out.println(num);
}
public static int find(int[]a){
int len=a.length;
int[]b=new int[33];
if(len<1)return -1;
int count=1;
for(int i=31;i>=0;i--){//对于二进制的第i位相加
int bitMask=0;
for(int j=0;j<len;j++){//所有数的第i位相加%3
int bit=a[j]&1;
if(bit==1){
bitMask+=bit;
}
a[j]>>=1;
}
b[count++]=bitMask%3;
}
int num=0;
for(int i=1;i<=32;i++){//二进制求得该数
num+=i*b[i];
}
return num;
}
}
//求数组中只出现一次的数,其他数都出现三次
public class Find2numAppear {
public static void main(String[] args) {
int[]a={1,1,3,1,3,3,4,4,2,4};
int num=find(a);
System.out.println(num);
}
public static int find(int[]a){
int len=a.length;
int[]b=new int[33];
if(len<1)return -1;
int count=1;
for(int i=31;i>=0;i--){//对于二进制的第i位相加
int bitMask=0;
for(int j=0;j<len;j++){//所有数的第i位相加%3
int bit=a[j]&1;
if(bit==1){
bitMask+=bit;
}
a[j]>>=1;
}
b[count++]=bitMask%3;
}
int num=0;
for(int i=1;i<=32;i++){//二进制求得该数
num+=i*b[i];
}
return num;
}
}
阅读全文
0 0
- 求数组中只出现一次的数,其他数都出现三次
- 其他三次 只出现一次的数
- 在其他数都出现k次的数组中找到只出现一次的数
- 在其他数都出现K次的数组中找到只出现一次的数
- 数组中只有一个数出现一次,其他数都出现两次,如何找出只出现一次的那个
- 求一个整型数组中,只有一个数出现一次,其他的数都出现2次,求这个数?
- 从数组中找出只出现一次的两个数,数组中其他数都出现两次
- 位运算---在其他数都出现k次的数组中找到只出现一次的数
- 只出现一次的数其他都出现两次
- 位运算-Single Number II(给定一个数组,除了一个数字出现一次,其他都出现三次,求出现一次的数)
- 求一个数组中只出现一次的两个数
- 求数组中只出现一次的两个数
- 位运算求数组中只出现一次的数
- [剑指offer]数组中只出现一次的数(2个)(其他都出现2次)
- 找出数组中出现一次的三个数,其他数都出现两次
- 数组中只出现一次的数
- 数组中只出现一次的数
- 数组中只出现一次的数
- Qt5设置应用程序图标及程序的发布
- 为什么模板不支持分离编译
- spring中配置jdbc.properties的两种方法
- java基础学习——类型转换
- 初识Kafka
- 求数组中只出现一次的数,其他数都出现三次
- 自顶向下,逐步求精
- 双飞翼布局(基础版)
- 从浏览器渲染谈页面优化
- stm32 Bootloader设计(YModem协议)
- 为什么中linux中各种服务都带一个d呢?
- 关于华为eNSP不能使用两个交换机
- 二分图最优匹配 模板
- 人物角色动态设计教程,人体速写动态与面部五官结构分析!