力扣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。

相关推荐
Shea的笔记本4 分钟前
MindSpore实战笔记:Pix2Pix图像转换复现全记录
笔记·算法·机器学习·web3
清酒难咽7 分钟前
算法案例之蛮力法
c++·经验分享·算法
想逃离铁厂的老铁15 分钟前
Day50 >> 98、可达路径 + 广度优先搜索理论基础
算法·深度优先·图论
散峰而望19 分钟前
【数据结构】假如数据排排坐:顺序表的秩序世界
java·c语言·开发语言·数据结构·c++·算法·github
海棠AI实验室21 分钟前
第十五章 字典与哈希:高效索引与去重
算法·哈希算法
独自破碎E27 分钟前
动态规划-打家劫舍I-II
算法·动态规划
圣保罗的大教堂30 分钟前
leetcode 3507. 移除最小数对使数组有序 I
leetcode
白日与明月32 分钟前
面试备考-Hive窗口函数
hive·面试·职场和发展
尽兴-1 小时前
JVM垃圾收集器与三色标记算法详解
java·jvm·算法·cms·gc·g1·三色标记算法
沐欣工作室_lvyiyi1 小时前
IIR数字带通滤波器(论文+源码)
算法·matlab·毕业设计·数字滤波器