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

相关推荐
阿阿阿阿里郎2 分钟前
ROS2快速入门--C++基础
开发语言·c++·算法
free-elcmacom4 分钟前
C++<x>new和delete
开发语言·c++·算法
lxh01136 分钟前
计算右侧小于当前元素的个数 题解
javascript·数据结构·算法
滴滴答滴答答9 分钟前
机考刷题之 12 LeetCode 684 冗余的边
算法·leetcode·职场和发展
美式请加冰19 分钟前
前缀数组的介绍和使用
数据结构·c++·算法
codeyanwu23 分钟前
LeetCode Hot 100 -- 图论
leetcode·深度优先·图论
IronMurphy25 分钟前
【算法十九】33. 搜索旋转排序数组 74. 搜索二维矩阵
线性代数·算法·矩阵
Srend66629 分钟前
【图论】最短路问题
算法·图论
云泽80834 分钟前
蓝桥杯算法精讲:二分算法之二分查找深度剖析
算法·职场和发展·蓝桥杯
电报号dapp11935 分钟前
公链浏览器:区块链世界的“数据透视镜”与哈希查询的艺术
算法·区块链·智能合约·哈希算法