位操作-找到数组中只出现一次的数字
来源:互联网 发布:做优化代理 编辑:程序博客网 时间:2024/05/19 20:59
题目一:数组中数字都两两相同,只有一个不同,找出该数字:
题目二:数组中数字两两相同,有两个不同,找出这两个:
int findUnique(int* a, int len){int i = 1;int temp = a[0];for(; i < len; i++){temp = temp ^ a[i];}printf("%d ", temp);}
题目二:数组中数字两两相同,有两个不同,找出这两个:
#include <stdlib.h>int a[] = {1,1,2,4,3,3,2,5};int findXorSum(int* a, int len){int i = 0;int temp = 0;for(; i < len; i++){temp = temp ^ a[i];}return temp;} int findFirstBit1(int n) { int count = 1; while(!( n & 1)) { n = n>>1; count++; } return count; } int isBit1(int a, int count){a = a >> count-1;return (a & 1);}void findTwoUnique(int* a, int len){int i = 0;int m = 0, n = 0;int temp = findXorSum(a, len);int count = findFirstBit1(temp);for(; i < len; i++){if(isBit1(a[i],count)){m = m ^ a[i];}else{n = n ^ a[i];}}printf("%d, %d", m, n);}int main(){findTwoUnique(a,8);}
- 位操作-找到数组中只出现一次的数字
- 找到数组中只出现一次的数字
- 九度OJ 1351 数组中只出现一次的数字 (位操作)
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 多线程--基础篇2--同步
- 天乐文本文件按行分割器_v1.0正式版【专业制作&极速分割】
- Windows环境下搭建Qt开发环境
- win8中 用office 提示值不在预期的范围内
- Combinations
- 位操作-找到数组中只出现一次的数字
- 为你的记事本增加扩展新的功能
- Qt调用WebService 4
- Ubuntu & Fedora 使用积累
- 《java核心技术_卷一:基础知识》(一)1-3章 思维导图
- 随机生成验证码(带计时器)
- 最长重复子串,后缀树
- 初识Linux
- HDU 4597 Play Game(搜索)