找到数组出现次数唯一的数
时间:2019-03-25
本文章向大家介绍找到数组出现次数唯一的数,主要包括找到数组出现次数唯一的数使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1. 数组中唯一出现过一次的数
利用异或的特性:x ^ y ^ x = y ^ x ^ x = y。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const int len=15;
int a[7]={2,4,3,3,2,5,5};
int main()
{
int ans=a[0];
for(int i=1;i<7;i++)
{
ans^=a[i];
}
printf("%d\n",ans);
return 0;
}
2. 一个数组里除了一个数字之外,其他数字出现了n次
我们把这个数分解成二进制,计算出每一位出现1的个数,我们知道如果多次出现的话,1的个数是能够整除这个n,如果发现这个n 不能够被 整除的时候,我们就知道那个唯一的数字转换为二进制的时候在这一位上会分解到,我们把这个再转换为十进制的数即可。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const int len=15;
int a[7]={2,3,3,3,4,4,4};
int b[32];
int main()
{
for(int i=0;i<=6;i++)
{
for(int j=0;j<32;j++)
{
b[j]+=((a[i]>>j)&1);
}
}
int ans=0;
for(int i=0;i<32;i++)
{
if(b[i]%3!=0)
{
ans+=(1<<i);
}
}
printf("%d\n",ans);
return 0;
}
2. 找出数组唯一出现过两次的数组,但这是用1001个整数组成的数组,这些整数是任意排列的,但是你知道所有的整数都在1到1000(包括1000)之间。此外,除一个数字出现两次外,其他所有数字只出现一次。
这个来说主要用到的是数学知识,1001个数,有一个出现了两次,那么我把这1001个数加起来,用和减去1到1000的和,很明显,差就是出现了两次的那个数了。
int findd(int a[])
{
int sum1=0,sum2=0;
for(int i=0;i<=1000;i++)
sum1+=a[i];
for(int j=1;j<=1000;j++)
sum2+=j;
return sum1-sum2;
}
3. 找出数组唯一出现过两次的数组,但是数值任意。
这个感觉只能用Hash 去做了。
int findd(int a[])
{
int hashh[1001]={0};
int x=0;
for(int i=0;i<1001;i++)
{
if((++hashh[a[i]])==2)
{
x=a[i];
break;
}
}
return x;
}
- 海量数据迁移之使用shell启用多个动态并行(r2笔记81天)
- 使用shell测试历史数据样本(r2笔记80天)
- 【专业技术】编译器的工作原理
- ORA-17500 ODM err的问题排查(r2笔记78天)
- 【专业技术】linux启动流程剖析
- 使用dbms_metadata生成建表语句(r2笔记97天)
- 海量数据迁移之使用分区并行切分导入(r2笔记79天)
- 关于oracle session的简单测试(r2笔记95天)
- 使用utl_file走选择性数据导出(r2笔记95天)
- 使用Linux命令发送邮件(r2笔记94天)
- 如何用python轻松破解wifi密码( 源码 )
- 海量数据迁移之通过shell估算数据量 (r2笔记93天)
- 使用sklearn进行数据挖掘
- 批量转换分区表为普通表(r2笔记92天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android编程实现状态保存的方法分析
- Android中TextView和ImageView实现倾斜效果
- Notification消息通知 自定义消息通知内容布局
- Android编程实现带渐变效果的圆角矩形示例
- Android仿苹果关机界面实现代码
- Android使用RecycleView实现拖拽交换item位置
- Android编程之计时器Chronometer简单示例
- Android OnFocuChangeListener焦点事件详解
- Android自定义加载圈动画效果
- Android 中ImageView的ScaleType使用方法
- ViewPager实现漂亮的引导页
- Android FTP 多线程断点续传下载上传的实例
- Android如何调用系统相机拍照
- Android开发之设置开机自动启动的几种方法
- Android图片等比例缩放和填充屏幕效果