力扣191. 位1的个数

给定一个正整数 n,编写一个函数,获取一个正整数的二进制形式并返回其二进制表达式中

设置位 的个数(也被称为汉明重量)。


示例 1:

复制代码
输入:n = 11
输出:3
解释:输入的二进制串 1011 中,共有 3 个设置位。

示例 2:

复制代码
输入:n = 128
输出:1
解释:输入的二进制串 10000000 中,共有 1 个设置位。

示例 3:

复制代码
输入:n = 2147483645
输出:30
解释:输入的二进制串 1111111111111111111111111111101 中,共有 30 个设置位。

提示:

  • 1 <= n <= 231 - 1

进阶

  • 如果多次调用这个函数,你将如何优化你的算法?

代码:

cpp 复制代码
class Solution {
public:
    int hammingWeight(int n) {
        int cnt;

        while(n){
            cnt += n%2;
            n = n/2;
        }

        return cnt;
    }
};

解题思路:

(1)根据题意,只需计算输入 n 的二进制表示中,有几个1。

(2)只要进行模2运算,即可判断余数是否为1。

(3)每次循环 n 除以 2。

相关推荐
缘来是黎6 分钟前
运维面试场景题——系统与性能优化
面试·职场和发展·性能优化
源代码•宸16 分钟前
Golang原理剖析(map)
经验分享·后端·算法·golang·哈希算法·散列表·map
wen__xvn19 分钟前
代码随想录算法训练营DAY15第六章 二叉树part03
数据结构·算法·leetcode
Sagittarius_A*21 分钟前
图像滤波:手撕五大经典滤波(均值 / 高斯 / 中值 / 双边 / 导向)【计算机视觉】
图像处理·python·opencv·算法·计算机视觉·均值算法
seeksky21 分钟前
Transformer 注意力机制与序列建模基础
算法
冰暮流星21 分钟前
c语言如何实现字符串复制替换
c语言·c++·算法
Swift社区22 分钟前
LeetCode 374 猜数字大小 - Swift 题解
算法·leetcode·swift
Coovally AI模型快速验证23 分钟前
2026 CES 如何用“视觉”改变生活?机器的“视觉大脑”被点亮
人工智能·深度学习·算法·yolo·生活·无人机
有一个好名字24 分钟前
力扣-链表最大孪生和
算法·leetcode·链表
AshinGau25 分钟前
Groth16 ZKP: 零知识证明
算法