LeetCode如何解决二进制中1的个数问题
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章主要介绍了LeetCode如何解决二进制中1的个数问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。题目请实现一个函数,输入一
千家信息网最后更新 2025年12月03日LeetCode如何解决二进制中1的个数问题
这篇文章主要介绍了LeetCode如何解决二进制中1的个数问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
题目
请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。
示例 1:
输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。
示例 2:
输入:00000000000000000000000010000000输出:1解释:输入的二进制串 00000000000000000000000010000000 中,共有一位为 '1'。
示例 3:
输入:11111111111111111111111111111101输出:31解释:输入的二进制串 11111111111111111111111111111101 中,共有 31 位为 '1'。
思路
作者:jyd
逐位判断
根据 与运算 定义,设二进制数字 nn ,则有:
若 n & 1 = 0n&1=0 ,则 nn 二进制 最右一位 为 00 ;
若 n & 1 = 1n&1=1 ,则 nn 二进制 最右一位 为 11 。
根据以上特点,考虑以下 循环判断 :
判断 nn 最右一位是否为 11 ,根据结果计数。
将 nn 右移一位(本题要求把数字 nn 看作无符号数,因此使用 无符号右移 操作)
步骤
初始化数量统计变量 res =0 。
循环逐位判断: 当 n =0 时跳出。
res += n & 1 : 若 n & 1 = 1n&1=1 ,则统计数 resres 加一。
n >>= 1 : 将二进制数字 nn 无符号右移一位( Java 中无符号右移为 ">>>" ) 。
返回统计数量 res
皮一下
public class Solution { // you need to treat n as an unsigned value public int hammingWeight(int n) { return Integer.bitCount(n); }}代码
public class Solution { // you need to treat n as an unsigned value public int hammingWeight(int n) { int res = 0; while(n != 0){ res += n &1; n >>>= 1; } return res; }}感谢你能够认真阅读完这篇文章,希望小编分享的"LeetCode如何解决二进制中1的个数问题"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
二进制
输入
输出
篇文章
个数
数字
示例
符号
统计
解释
问题
函数
数量
循环
代码
价值
作者
兴趣
变量
号数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库可用技术有哪些
电商网络安全期末考试
湖南网络安全产业
网络安全法日的宣传标语
数据库表属性行的关系
中文论文数据库
中小企业网络安全绘画
mac如何完全清除数据库
软件开发和测试的流程
游戏服务器登录错误怎么办
华大智造服务器管理如何
inux服务器开源
文档服务器管理软件
stm链接服务器发生错误
qt根据时间查询数据库
部署到服务器的链接有啥用
feature软件开发
管理人员软件开发基础
交通网络安全和信息化建设
四川思恩特通讯网络技术公司
伊犁软件开发优化价格
彩票软件开发原理
高级net软件开发工程师
国产服务器与传统服务器
派出所网络安全工作总结
r星服务器连接失败无法建立连接
代码托管服务器
华为软件开发云政府补贴
成都高新区国家级网络安全产业
计算器网络技术专业就业前景