LeetCode如何解决二进制中1的个数问题
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要介绍了LeetCode如何解决二进制中1的个数问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。题目请实现一个函数,输入一
千家信息网最后更新 2025年01月31日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安全错误
数据库的锁怎样保障安全
常见的单队列单服务器队列例子
黑客网络技术是什么
集中控制数据管理服务器
不用数据库怎么登录网页
上海万户网络技术怎么样
高校网络安全宣传活动
佳明服务器安全吗
德勤软件开发待遇咋样
怀旧服服务器可以直接买么
爱聊软件开发者哪里人
网络安全培训 沈阳
软件开发者怎么检测附近的用户
车载软件开发公司
网络安全科普车
如何用post写入数据库
郧阳区好的软件开发专业服务
密集网络技术应用
台湾中药数据库
上海代理服务器
电子邮箱服务器未响应
数据库表空间文件恢复
cms数据库在哪
佳明服务器安全吗
施肥服务器
网络安全体系为新基建
网络技术的可行性分析
网络安全需要遵守什么什么
域服务器查看本地用户
服务器系统管理报错
数据库中list