算法篇—只出现一次的数字

时间:2024-10-02 19:16:55

文章目录

  • 1.只出现一次的数字Ⅰ
  • 2.只出现一次的数字Ⅱ
  • 3.只出现一次的数字Ⅲ

1.只出现一次的数字Ⅰ

a.在这里插入图片描述
b.思路
????数组中的每一个数都与ret进行异或。
c.注意
????相同的数进行异或,结果为零。
????任何数与零进行异或,结果为本身。
d.代码
在这里插入图片描述

2.只出现一次的数字Ⅱ

a.在这里插入图片描述
b.思路
????用count统计每个数每一位的1的个数。
????count%3的结果 放入当前位数。
c.图解
在这里插入图片描述
d.代码
在这里插入图片描述
e.注意
????count的类型应该是long long或者long,如果用int 会一个这样的错误。左移31位不能用"int"表示。
在这里插入图片描述

3.只出现一次的数字Ⅲ

a.在这里插入图片描述
b.思路
????数组中的每一个数都与ret进行异或。此时的ret的值等于两个只出现一次的数异或的结果。
????在ret中找一个为1的位,记录位数。通过位数来对数组进行分类。
c.图解
在这里插入图片描述
d.代码
在这里插入图片描述
e.注意
????j的类型应该为long long 或者long。

今天的算法题就分享到这里了,谢谢你的浏览,如果对你有帮助的话,可以给个关注,顺便来个赞。
在这里插入图片描述