做影视网站有什么风险,网站开发在线学习,网站开发在无形资产中,20个中国风网站设计欣赏1. 题目解析
题目链接#xff1a;191. 位1的个数 这个问题的理解其实相当简单#xff0c;只需看一下示例#xff0c;基本就能明白其含义了。
核心在于计算题目所给32位二进制数1的个数返回即可。
2.算法原理 位运算特性#xff1a;通过位运算#xff0c;特别是按位与(191. 位1的个数 这个问题的理解其实相当简单只需看一下示例基本就能明白其含义了。
核心在于计算题目所给32位二进制数1的个数返回即可。
2.算法原理 位运算特性通过位运算特别是按位与()运算和右移()运算可以逐位检查一个数的二进制表示中的每一位。 循环检查将输入的整数与1进行按位与运算如果结果为1则说明最低位是1否则说明最低位是0。然后将整数右移一位继续检查下一位直到检查完所有位。 计数在循环中每检测到一位为1就增加计数器的值。最终计数器的值即为二进制表示中1的个数。
算法步骤
初始化计数器为0。循环执行以下操作直到整数变为0 对整数和1进行按位与运算得到最低位的值。如果结果为1则计数器加1。将整数右移一位。返回计数器的值作为结果。
这个算法的时间复杂度是O(k)其中k是整数中1的个数因为需要遍历每一位来检查是否为1。在最坏情况下当整数全为1时时间复杂度是O(32)因为题目中指定了输入是长度为32的二进制串。
3.代码编写
class Solution
{
public:int hammingWeight(uint32_t n) {int ret 0;for(int i 0; i 32; i){if((n i) 1){ret;}}return ret;}
};
The Last
嗯就是这样啦文章到这里就结束啦真心感谢你花时间来读。
觉得有点收获的话不妨给我点个赞吧
如果发现文章有啥漏洞或错误的地方欢迎私信我或者在评论里提醒一声~