【算法练习】找出数组中仅出现一次的数字
来源:互联网 发布:佶天鸿网络俱乐部 编辑:程序博客网 时间:2024/05/05 23:04
【题目】:给定一个整数数组,数组中除了一个整数仅出现一次外,其他数字都是出现两次,采用时间可空间复杂度尽量小的方法找出这个仅出现一次的整数。
【来源】微软校招题
我最早知道这个题是在C语言的位操作学习过程中,这道题目是考察的对C或者C++位操作的应用--异或操作符 “^”,两个相同的整数(在计算机内表示是补码)进行异或操作,结果为0,数字0与任何整数异或操作,结果还是那个整数,利用这个性质,将数组中的整数异或操作,最终所有相同的数字都被异或操作结果为0,0与仅出现一次的数字异或,得到的还是那个数字。可以找到要求的数字。
【源代码】:
//******************************************************// date : 2014-03-31// author : zhangxiaoya// university : BIT//******************************************************/********************************************************** Instruction 输入一个整数数组,数组中除了一个整数仅出现一次外, 其他整数都出现两次,给出一种时间和空间复杂度最小的 方法找出这个只出现一次的整数***********************************************************/#include <iostream>using namespace std;int main(){ int n,t,r; while(cin>>n) { r =0; while(n--) { cin>>t; r ^=t; } cout<<r<<endl; } return 0;}
0 0
- 【算法练习】找出数组中仅出现一次的数字
- 找出数组中出现仅一次的数字
- 找出数组中出现次数最多的数字&找出数组中只出现一次的数字
- [每日练习]一个数组中有一个数字只出现一次,其他数字都出现了偶数次。请找出一个只出现一次的数字
- 每天一道算法题10 找出数组中两个只出现一次的数字
- 每天一道算法题-1 找出数组中两个只出现一次的数字
- 算法题6 找出整数数组中两个只出现一次的数字
- 每天一道算法题10 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字 (算法)
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字--总结
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中唯一出现一次的两个数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 黑马程序员-有关List集合的总结
- 用keil编译LPC程序
- openssl在多平台和多语言之间进行RSA加解密注意事项
- static终极版
- Python入门教程-01 环境搭建
- 【算法练习】找出数组中仅出现一次的数字
- go语言自动推导类型不能放在函数外
- 图˙谱˙马尔可夫过程˙聚类结构----by林达华
- 数据库技术概述
- 斐波那契数列的低效与高效解法
- java正则表达式
- 产生冠军
- Android应用程序剖析
- linux开发常见段错误问题原因