当前位置: 首页> 娱乐> 八卦 > 深圳专业的网站制作公司_阳性不一定是新冠_云浮新增确诊病例30例_全网整合营销

深圳专业的网站制作公司_阳性不一定是新冠_云浮新增确诊病例30例_全网整合营销

时间:2025/7/11 2:56:08来源:https://blog.csdn.net/huangyuchi/article/details/146234483 浏览次数:0次
深圳专业的网站制作公司_阳性不一定是新冠_云浮新增确诊病例30例_全网整合营销

题目链接:137. 只出现一次的数字 II - 力扣(LeetCode) 

 算法解析

        位运算是用于二进制的运算符号。而对于多次出现的数字,其二进制都是一模一样的,这里是3次重复的出现是数字。由此我们可以想到,如果我们由低到高去计算为一个bit位上的和,对和取余3。如果为0则代表这个bit位上都是重复出现的数字。如果位1则代表出现的我们要找的数字。我们将这个bit的结果记录,再去计算和判断下一个bit位

 代码实现

//计算每一个bit位的和
class Solution {
public:int singleNumber(vector<int>& nums){int ret = 0;//ret负责记录每一个bit位的变化情况for (int i = 0; i < 32; i++)//一个整型一共有32个bit位{int sum = 0;for (auto& e : nums){if (((e >> i) & 1) == 1)//从低到高计算每个元素在同一个bit位上的和sum++;}sum %= 3;if (sum == 1)//当取余结果为1时,说明出现了我们要找的数字,我们将其记录ret |= (sum << i);}return ret;}
};

 拓展

        其实对于这种题:一个元素只出现一次,其余元素出现n次。方法是一样的,只需要将取余3改为取余n即可

关键字:深圳专业的网站制作公司_阳性不一定是新冠_云浮新增确诊病例30例_全网整合营销

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: