LeetCode如何解决二进制中1的个数问题
发表于:2024-11-29 作者:千家信息网编辑
千家信息网最后更新 2024年11月29日,这篇文章主要介绍了LeetCode如何解决二进制中1的个数问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。题目请实现一个函数,输入一
千家信息网最后更新 2024年11月29日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安全错误
数据库的锁怎样保障安全
江苏智能化软件开发推荐厂家
计算机网络技术哪个系好
便宜的显卡服务器
软件开发中的量化工具
数据库归档的意思
软件开发必须要打字吗
谈谈关于网络安全的论文
dcn网络安全问题
e网络安全视频教程
超融合服务器维修多少钱
西安软件开发公司10强
专科软件开发属于什么学历
大话手游虎虎生威服务器周几开服
软件开发算研发费用
scum服务器怎么设置自动重启
云帕网络技术
员工信息管理系统数据库表格
武汉大学 网络安全
智能卡在网络安全
上海车团网络技术
windows10网络服务器
办公室网络安全教育宣传片动漫
鹏博士是网络安全股吗
资本投向网络安全产业
软件开发能力提升计划
上海勇进软件开发
mac电脑服务器
设有图书管理数据库题目
西安迅玛网络技术
怎样升级网络安全