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

相关推荐
回眸&啤酒鸭4 分钟前
【回眸】低压电工证培训记录
职场和发展
孬甭_7 分钟前
深入剖析快速排序:原理、实现与性能优化
数据结构·算法·排序算法
阿正的梦工坊21 分钟前
【Rust】06-函数、控制流与模块组织
开发语言·算法·rust
阿正的梦工坊26 分钟前
【Rust】16-async/await、Future 与执行器模型
网络·算法·rust
阿正的梦工坊30 分钟前
【Rust】11-Rust 所有权模型的编译期推理机制
开发语言·算法·rust
风筝在晴天搁浅34 分钟前
LeetCode CodeTop 88.合并两个有序数组
算法·leetcode·职场和发展
GuWen_yue35 分钟前
吃透二叉树与递归!60分钟掌握树结构核心+解题思路
javascript·算法
happymaker062636 分钟前
LeetCodeHot100——3.无重复字符的最长子串
算法
nice_lcj52041 分钟前
排序(2)-选择排序专题——简单选择排序与堆排序的结构优化
数据结构·算法·排序算法
nice_lcj52042 分钟前
排序(4)-归并排序专题——归并排序的分治美学
java·数据结构·算法·排序算法