异或方式找到一组数组中不重复的两个数(同班同学方法)
源代码如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int a[] = {1,2,3,4,6,3,2,1};
int n = 0, i, size, count = 0, bit = 0;
int result1, result2;
size = sizeof(a) / sizeof(a[0]);
/*这一块用于获得异或的结果n*/
for (i = 0; i < size; i++)
{
n = n ^ a[i];
}
printf("n = %d\n", n);
/*下面的这一块用于获得,比如在这题,4和6异或的结果为2,那么其中就会4&2就是0,而6&2就不是0,那么就可以成功把4和6区分开。当然对于5和10,异或结果是00001111,但只要我们取出其中一个比特就好,比如1,5&1不是0,而10&1是0.也可以成功区分开。所以下面的代码就是取出第一个1*/
while ((n & (1 << count)) == 0)
{
count++;
}
printf("%d", (1 << count));
/*成功获得00000010以后,就可以获得结果了*/
result1 = result2 = 0;
for (i = 0; i < size; i++)
{
if ((a[i] & (1 << count)) == 0)
{
result1 = result1 ^ a[i];
}
else
{
result2 = result2 ^ a[i];
}
}
printf("the result is %d and %d.\n", result1, result2);
return 0;
}
注意点 if (5&3 == 0,5&3一定要加(),也就是改成if ((5&3) == 0)。
异或方式找到一组数组中不重复的两个数(同班同学方法)相关推荐
- 去除html重复的元素 js,js数组中去除重复值的几种方法
在日常开发中,我们可能会遇到将一个数组中里面的重复值去除,那么,我就将我自己所学习到的几种方法分享出来 去除数组重复值方法: 1,利用indexOf()方法去除 思路:创建一个新数组,然后循环要去重的 ...
- 位运算:找出来数组中落单的两个数
题目大意 每次给你 2 * n + 2 个的数字,除其中两个数字之外其他每个数字均出现两次,找到这两个数字并升序输出. 思路 最简答的想法,排序,然后找出只出现一次的数,不再叙述. 来说一说用位运算怎 ...
- 找出数组中不重复的一个数
只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 ...
- 小小c#算法题 - 1 - 找出数组中满足条件的两个数
把一些东西放到网上,看的时候方便一些.代码可能有bug且不是最佳解决方案,仅供参考. 题目:输入一个按升序排序的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字. 要求时间复杂度是 ...
- 【六种方式】去除数组中的重复元素
文章目录
- 找到所有数组中消失的数字_【一点资讯】千万程序员的呼声:面试如何拿到大厂Offer?这份阅读量超过11W+的算法刷题宝典请你原地查收 www.yidianzixun.com...
如何才能通过面试拿到大厂Offer? "刷leetcode!" 这是我听到最多的回答! 现在越来越多的人应聘工作时都得先刷个几十百来道题,不刷题感觉都过不了面试. 无论是面测试.算 ...
- LeetCode 25K 个一组翻转链表26删除排序数组中的重复项
如果问题或者其他方法还请分享,如加入打卡微信搜索bigsai回复进群一起打卡. K个一组翻转链表 题目要求 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小 ...
- 《LeetCode力扣练习》第448题 找到所有数组中消失的数字 Java
<LeetCode力扣练习>第448题 找到所有数组中消失的数字 Java 一.资源 题目: 给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内.请你 ...
- leetcode(3)——697. 数组的度(C++版本注释)(map容器),448. 找到所有数组中消失的数字(取余操作,C++中的auto类型)
文章目录 前言 697 程序 思路 收获 map容器 448 程序 收获 取模操作的思考 auto 前言 大佬的程序,边刷边总结边学语言. 题目697 697 程序 class Solution {p ...
最新文章
- 时隔多年,ORB-SLAM3终于来了
- tomcat升级后报错: Invalid character found in the request target.
- 1.15 实例内部类
- java职业发展路线图_Java程序员如何选择未来的职业路线
- Quartz源码总结
- [vue] 怎么修改vue打包后生成文件路径?
- C++primer第八章 IO库 8.1 IO类
- 基于Myeclipse的三大框架(SSH)整合
- 关于eclipase出现的problems during content assist报错问题
- 湿气重的人,脸上会有哪些信号?
- windows中的过滤绑定如何动态卸载
- 通知:大数据技术架构知识库公开
- ppt加音乐计算机一级,PPT2016背景音乐该怎么设置?
- 自由-进化/开源中国众包平台
- cdr 表格自动填充文字_Cdr教程 用CorelDRAW绘制百事可乐标志Logo设计教程
- MySQL单表数据量大优化方案及注意事项
- JavaEE:网络编程套接字
- opencv-python频繁报错尝试解决措施
- MYSQL数据库DML常见的命令
- 计算机编程语言的应用
热门文章
- linux shell脚本写法,linux: 常用shell脚本写法
- qt如何用python结合_在Qt(C++)中与Python混合编程
- java有画图的库吗_Java画图
- windows 10 内置bash 安装32位支持
- sam机架和kx连线图_「声卡跳线」雅马哈UR22C/UR24C声卡设置机架直播K歌
- ado filter 多条记录_车里能开直播 行车记录仪十大隐藏设置
- visual studio输入法打不了中文_我为什么不用Mac自带输入法
- imu与gps之间的时间戳_一个时间戳精度问题,引发了一个MySQL血案
- 理解注意力机制的好文二
- 用计算机控制检测实时温度,温度实时测量及控制系统.doc