一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。编写一个函数找出这两个只出现一次的数字。

  • 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.结果

一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 编写一个函数找出这两个只出现一次的数字。相关推荐

  1. C语言:一个数组中只有两个数字是出现一次

    1 //1.一个数组中只有两个数字是出现一次, 2 //其他所有数字都出现了两次. 3 //找出这两个数字,编程实现.a 4 5 //^=单独两个数的^结果 6 //单独出现的两个数不同位的标记 7 ...

  2. 一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次,找出这两个数字

    题目:一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次. 找出这两个数字,编程实现. 参考代码: #include<stdio.h> #include <windows. ...

  3. 快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值

    我觉得写得很清晰,希望没有侵犯作者的著作权,原文地址http://blog.csdn.net/hackbuteer1/article/details/6699642 快速找出一个数组中的两个数字,让这 ...

  4. 算法题:“找出单身狗”--找出一个数组中只出现一次的数字

    题目:一个数组中只有两个数字是出现一次,其他所有数字都出现了两次. 编写一个函数找出这两个只出现一次的数字. 解题过程以及思路:(思路在代码中以注释形式给出) //一个数组中只有两个数字是出现一次,其 ...

  5. 一个数组中,除两个元素其余都出现了两次,找出这两个元素

    为什么80%的码农都做不了架构师?>>>    本文为转载,原文地址是:http://blog.csdn.net/morewindows/article/details/821400 ...

  6. 找出一个数组中唯一一个出现2次的数字

    找出一个数组中唯一一个出现2次的数字,不清楚是不是LeetCode上的题.本人默认是LeetCode上的题. 一个数组中有N个数字,但是只有一个数字出现了2次,其他的数字均不相同.这种问题一般应该采用 ...

  7. 产生10个1-100的随机数,并放到一个数组中, 把数组中大于等于10的数字放到一个list集合中,并打印到控制台。

    代码 import java.util.ArrayList; import java.util.List; import java.util.Random;/*1.产生10个1-100的随机数,并放到 ...

  8. 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): ...

  9. 有苦有乐的算法 --- 一个数组中,有两种数出现了奇数次,其余数都出现了偶数次,找到这两种数

    题目 一个数组中,有两种数出现了奇数次,其余数都出现了偶数次,找到这两组数 例: [2,4,3,2,5,4] ⇒ [3,5] [1,4,6,3,7,8,3,2,1,2,6,6,7,8] ⇒ [6,4] ...

最新文章

  1. 用户界面设计准则从何而来
  2. 牛人 20000 字的 Spring Cloud 总结,太硬核了~
  3. 第一次认识SharePoint...
  4. 【bzoj 3173】[Tjoi2013]最长上升子序列
  5. SPRING自定义注入CONTROLLER变量
  6. VMware产品支持倒计时
  7. NYOJ题目170网络的可靠性
  8. Pwn2Own 2021温哥华黑客大赛的目标和赏金公布
  9. 廖雪峰Java1-1Java入门-java简介
  10. 经验之谈:程序员应该如何学好大数据技术
  11. ASP.NET---动态生成Word文档
  12. 网络视频流 -- ffmpeg 推流
  13. EL 和 JSTL练习题
  14. 介绍erp管理软件如何助力小微企业管理升级?
  15. python实现批量变更阿里云DNS解析记录状态
  16. 用户画像(一):我对用户画像的理解
  17. Linux禁止普通用户使用某些命令
  18. uniapp生态UI框架选择之uView(@莫成尘)
  19. java连接虚拟打印机_v4打印驱动器的虚拟打印机驱动程序INF配置
  20. html设置边框颜色

热门文章

  1. 概率统计——三扇门游戏与贝叶斯定理
  2. C#.Net中的加密解密(AES、DES、RSA、MD5)、数字证书、HTTPS
  3. 9、 Mac 实用软件清单
  4. Linux系统运维面试-05
  5. 2021-2025年中国反勒索软件行业市场供需与战略研究报告
  6. 以国外知名杀毒软件名称命名的.avast后缀勒索病毒是什么?
  7. TX9118 同步升压IC
  8. Leetcode 496:下一个更大元素 I(超详细的解法!!!)
  9. python中字母数字的大小比较_python列表怎么比较大小
  10. 计算机英语清考,天大2018年10月清考《计算机应用基础》在线考核试题答案