题目描述
在一个整数数组中1个数出现了3次,其余的数都出现了2次,请找出出现3次的数。
常规解法
用两个循环,外层循环每次提供一个数,内层循环遍历数组进行比对,用另外的变量存储相等的次数,内层循环结束之后,如果存储次数的变量等于3,就输出这个元素,然后退出,否则外层循环提供下一个值,继续上述过程。
潇洒解法
其实本题采用位运算中异或是最简单的。 讲之前要明确几个知识点:
(1)整数与0异或为本身。与本身异或为0,即本身的奇数次异或还为本身,偶数次异或为0。
(2)异或运算符合结合律和交换律。
全部异或后,出现2次数的异或都为0,只剩出现3次的数了。
尾言
如果阁下没有学习位运算不妨关注小编的零基础视频教程:
通俗易懂,深入浅出,一个视频只讲一个知识点。视频不深奥,不需要钻研,在公交、在地铁、在厕所都可以观看,随时随地涨姿势,人人都可以学习的C语言课程
閱讀更多 C語言基礎 的文章