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

相关推荐
沿着路走到底3 分钟前
将数组倒序,不能采用reverse,算法复杂度最低
算法
IDIOT___IDIOT11 分钟前
KNN and K-means 监督与非监督学习
学习·算法·kmeans
a努力。15 分钟前
腾讯Java面试被问:String、StringBuffer、StringBuilder区别
java·开发语言·后端·面试·职场和发展·架构
Hcoco_me28 分钟前
大模型面试题18:t-SNE算法详解及入门实操
算法
Data_agent1 小时前
学术爬虫实战:构建知网论文关键词共现网络的技术指南
python·算法
立志成为大牛的小牛1 小时前
数据结构——五十五、散列查找的性能分析(线性探测法)(王道408)
数据结构·程序人生·考研·算法
神也佑我橙橙2 小时前
Thrift 简单介绍
算法
simon_skywalker2 小时前
线性代数及其应用习题答案(中文版)第二章 矩阵代数 2.1 矩阵运算(2)
线性代数·算法·矩阵
断剑zou天涯3 小时前
【算法笔记】Manacher算法
java·笔记·算法