剑指 Offer 56 - II. 数组中数字出现的次数 II

题目地址

https://leetcode.cn/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-ii-lcof/
在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。
示例 1:
输入:nums = [3,4,3,3]
输出:4
示例 2:
输入:nums = [9,1,7,9,7,9,7]
输出:1

解法

位运算解法,网上很多都是直接贴代码或者三两句解释,根本不能理解原理。楼主尝试详细解释下,希望小白也能看懂。
有A.B.C三个数,他们的二进制如下
在这里插入图片描述
除了一个数字出现一次,其他数字都出现3次,假如B出现一次。
在这里插入图片描述
我们统计每一位出现1的次数,因为都是出现3次的所以每一位1出现的次数对3取模肯定是0,我们在考虑上出现一次的数,那对3取模的余数就是这个数了。
在这里插入图片描述
至于如何统计每一位1的个数以及二进制转10进制,看题解代码就可以了,这边就不贴了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值