c++怎么判断只出现一次的数字


本篇内容主要讲解“c++怎么判断只出现一次的数字”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“c++怎么判断只出现一次的数字”吧!算法
位运算异或的使用(一)中,两位相同的数异或为0,转换成3位数的”异或”操作位0,也就是说我们需要实现同一个bit位的3个1,操作为0就可以,将问题转换为对如何实现同一bit位的三个数的操作a?b?c =0的运算。因为两位数的异或操作,是同一个bit位的两个数的加法,忽略进位的情况,换种说法就是两数相加对2取余数。所以三个相同的数的a?b?c = 0的操作就变成了,三位数操作对3取余了。同样的道理,4位数,n位数都可以采用这一个算法来实现。题目:只出现一次的数字算法1:数学公式这个题目可以转换成下面的公式:2c =3(a+b+c)-sum,
这里的a,b,c是数组中出现的元素,c是出现了一次的数,a,b都是出现了3次的数。sum表示的是:数组里面所有数的和。备注:同样的算法,也适合数组里面有n次重复的数组,和1个不重 香港云主机复的数,公式为:n(a+b+c)-sum =(n-1)c
代码实现:
算法2: 采用位运算
指导思路是:转换成前面算法篇:位运算异或的使用(一)中,两位相同的数异或为0,转换成3位数的”异或”操作位0,也就是说我们需要实现同一个bit位的3个1,操作为0就可以,将问题转换为对如何实现同一bit位的三个数的操作a?b?c =0的运算。因为两位数的操作采用的是异或,也就是:
所以三个相同的数的a?b?c = 0的操作就变成了,三位数操作对3取余了。代码实现:
到此,相信大家对“c++怎么判断只出现一次的数字”有了更深的了解,不妨来实际操作一番吧!这里是开发云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: win10系统微软小娜经常处于离线状态如何解决

这篇文章主要介绍“win10系统微软小娜经常处于离线状态如何解决”,在日常操作中,相信很多人在win10系统微软小娜经常处于离线状态如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”win10系统微软小娜经常处于离线状态如何…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/13 17:59
Next 07/13 17:59

相关推荐