找出一组数据的不同数据
来源:互联网 发布:软件自动化研究生 编辑:程序博客网 时间:2024/05/22 14:56
一组数据中只有一个数字出现了一次,其他所有数字都是成对出现的。(使用位运算)
例如:
数据:1 3 5 7 1 3 5 8这组数据中,只有7出现了一次。
代码如下:
#include<stdio.h>int one_time(int x[],int n){int i = 0;int j = 0;for(i=0; i<n-1; i++){for(j=i+1; j<n; j++){if((x[i]^x[j])==0)break;}} if((x[i]^x[j])!=0) return x[i];}int main(){int a[9] = {1,1,2,2,3,3,4,4,5};int tmp = 0;tmp=one_time(a,9);printf("%d\n",tmp);return 0;}<strong></strong>这种方法只能找出一个不同的数字,所以要找出两个不同只能另想方法了。
#include <stdio.h>void find(int arr[], int sz, int *num1, int *num2){int i = 0;int ret = 0;int pos = 0;for(i=0; i<sz; i++){ret ^= arr[i];}for(i=0; i<32; i++){if(((ret>>i)&1) == 1){pos = i;break;}}for(i=0; i<sz; i++){if(((arr[i]>>pos)&1) == 1){*num1 ^= arr[i];}}*num2 = ret ^ *num1;}int main(){int i = 0;int arr[] = {1,2,3,4,1,2,3,4,5,6};int x = 0;int y = 0;find(arr, 10, &x, &y);printf("%d\n", x);printf("%d\n", y);return 0;}
0 0
- 找出一组数据中不同的数据
- 找出一组数据的不同数据
- 使用JAVA找出一组数据的最大值
- (拓展)在一组成对出现的数据中找出两个不同的数
- 找出一组数据中只出现一次的数
- 给出一组整数型的数据,找出最大值,数据的个数是任意的
- 在一组给定的数据中,找出某个数据是否存在。
- 算法(根据提供的某数值,找出与其最接近的一组数据)
- 算法(根据提供的某数值,找出与其最接近的一组数据)
- 算法(根据提供的某数值,找出与其最接近的一组数据)
- 算法(根据提供的某数值,找出与其最接近的一组数据
- 通过循环找出一组数据的最大值和最小值的小技巧
- 找出一组数据中多次出现的所有数字(空间要求最低)
- 找出一组数中相同的数据并取出计算出长度
- mysql向A表插入B表新增数据(即找出2表不同的数据)
- 【C语言】【笔试题】找出一组数据中成单出现的数字,其他所有数字都是成对出现的。(移位)
- Python实现:斐波那契数列、交换两个变量的值、从一组数据中找出最大最小值
- 一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。
- time33算法
- R语言如何多行注释
- hdu5391
- 从P1到P7——我在淘宝这7年
- linux下添加定时任务 详解示例
- 找出一组数据的不同数据
- 简单聊一下makefile中的 =, :=, ?=和+=
- Jbpm 分派任务的几种方式
- 将数据存储到SD卡上
- Java泛型与反射
- poj 2531 Network Saboteur
- 360加固(apk二次签名)
- Android Menu 单选设置
- 给开发者的10个忠告