异或
来源:互联网 发布:阿里云简称 编辑:程序博客网 时间:2024/04/29 16:52
异或的基本原理:异或是二进制间的位运算,相同为0,不同为1
一个整型数组里,除了一个或者两个或者三个数字之外,其他数字均出现了两次,请找出只出现一次的数字。要求时间复杂度为O(n),空间复杂度为O(1);
根据异或的特性两个相同的数字异或等于0,而0和一个数字异或等于其本身,所以当进行循环遍历一遍之后得到的结果一定是那个只出现一次的数字。代码实现:
#include<stdio.h>
int main()
{
int n,a[1000],i;
while(~scanf("%d",&n))
{
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=1;i<n;i++)
a[0]=a[0]^a[i];
printf("%d\n",a[0]);
}
return 0;
}
0 0
- 与, 或, 异或
- 异或
- 异或
- 异或
- 异或
- 异或
- 异或
- 异或
- 异或
- 异或
- 异或
- 异或
- 异或
- 异或
- 异或
- 异或
- 异或
- 异或
- RxJava操作符(三)Filtering
- 基于Jenkins, Apache Mesos和Marathon的弹性高可用的持续集成环境(上篇)
- 2016年值得关注的十个微信公众号
- Linux定时运行作业
- 理解RESTful架构
- 异或
- PLSQL Developer图形化窗口创建数据库全过程
- gdb设置条件断点
- JAVA设计模式之观察者模式
- UML类图介绍
- mysql或者hive实现分层向下统计功能
- 驱动复习(mor8)
- VS2015无法创建C++工程解决方法!!
- SearchView,TabHost,ScrollView的基本使用