一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 编写一个函数找出这两个只出现一次的数字。
一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。编写一个函数找出这两个只出现一次的数字。
- 1.代码编写
- 2.结果
1.代码编写
代码如下(示例):
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<assert.h>
void find_two_diff_num(int arr[], int sz, int *p1, int *p2)
{int i = 0;//循环变量int ret = 0;int pos = 0;*p1 = 0;//数字1的地址*p2 = 0;//数字2 的地址//1.把所有数字异或 for (i = 0; i < sz; i++){ret ^= arr[i];//循环到最后一次的结果是5^6,即就是101^110=011}//2.找ret二进制中为1的一位for (i = 0; i < 32; i++){if (((ret >> i) & 1) == 1)//上一步两个数异或的后两位为1{pos = i;break;}}//分组for (i = 0; i < sz; i++){if (((arr[i] >> pos) & 1) == 1){(*p1) ^= arr[i];}}(*p2) = (*p1) ^ ret;
}int main()
{int arr[] = { 1, 2, 5, 6, 8, 1, 6, 2, 9, 8 };int sz = sizeof(arr) / sizeof(arr[0]);//数组大小int num1 = 0;//数字1int num2 = 0;//数字2find_two_diff_num(arr, sz, &num1, &num2);printf("num1=%d,num2=%d\n", num1, num2);system("pause");return 0;
}
2.结果
一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 编写一个函数找出这两个只出现一次的数字。相关推荐
- C语言:一个数组中只有两个数字是出现一次
1 //1.一个数组中只有两个数字是出现一次, 2 //其他所有数字都出现了两次. 3 //找出这两个数字,编程实现.a 4 5 //^=单独两个数的^结果 6 //单独出现的两个数不同位的标记 7 ...
- 一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次,找出这两个数字
题目:一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次. 找出这两个数字,编程实现. 参考代码: #include<stdio.h> #include <windows. ...
- 快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值
我觉得写得很清晰,希望没有侵犯作者的著作权,原文地址http://blog.csdn.net/hackbuteer1/article/details/6699642 快速找出一个数组中的两个数字,让这 ...
- 算法题:“找出单身狗”--找出一个数组中只出现一次的数字
题目:一个数组中只有两个数字是出现一次,其他所有数字都出现了两次. 编写一个函数找出这两个只出现一次的数字. 解题过程以及思路:(思路在代码中以注释形式给出) //一个数组中只有两个数字是出现一次,其 ...
- 一个数组中,除两个元素其余都出现了两次,找出这两个元素
为什么80%的码农都做不了架构师?>>> 本文为转载,原文地址是:http://blog.csdn.net/morewindows/article/details/821400 ...
- 找出一个数组中唯一一个出现2次的数字
找出一个数组中唯一一个出现2次的数字,不清楚是不是LeetCode上的题.本人默认是LeetCode上的题. 一个数组中有N个数字,但是只有一个数字出现了2次,其他的数字均不相同.这种问题一般应该采用 ...
- 产生10个1-100的随机数,并放到一个数组中, 把数组中大于等于10的数字放到一个list集合中,并打印到控制台。
代码 import java.util.ArrayList; import java.util.List; import java.util.Random;/*1.产生10个1-100的随机数,并放到 ...
- Python课堂笔记之判断一个数组中是否含有数字0
判断一个数组中是否含有数字0的3种方法: lst1=[1,3,4] lst2=[0,6,7] lst3=[[1,3,4],[0,6,7]]#1.如果有0,True for i in range(2): ...
- 有苦有乐的算法 --- 一个数组中,有两种数出现了奇数次,其余数都出现了偶数次,找到这两种数
题目 一个数组中,有两种数出现了奇数次,其余数都出现了偶数次,找到这两组数 例: [2,4,3,2,5,4] ⇒ [3,5] [1,4,6,3,7,8,3,2,1,2,6,6,7,8] ⇒ [6,4] ...
最新文章
- 用户界面设计准则从何而来
- 牛人 20000 字的 Spring Cloud 总结,太硬核了~
- 第一次认识SharePoint...
- 【bzoj 3173】[Tjoi2013]最长上升子序列
- SPRING自定义注入CONTROLLER变量
- VMware产品支持倒计时
- NYOJ题目170网络的可靠性
- Pwn2Own 2021温哥华黑客大赛的目标和赏金公布
- 廖雪峰Java1-1Java入门-java简介
- 经验之谈:程序员应该如何学好大数据技术
- ASP.NET---动态生成Word文档
- 网络视频流 -- ffmpeg 推流
- EL 和 JSTL练习题
- 介绍erp管理软件如何助力小微企业管理升级?
- python实现批量变更阿里云DNS解析记录状态
- 用户画像(一):我对用户画像的理解
- Linux禁止普通用户使用某些命令
- uniapp生态UI框架选择之uView(@莫成尘)
- java连接虚拟打印机_v4打印驱动器的虚拟打印机驱动程序INF配置
- html设置边框颜色