码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • LeetCode220730_62、位1的个数


    编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。

    示例 1:

    输入:00000000000000000000000000001011
    输出:3
    解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。

    来源:力扣(LeetCode)
    链接:https://leetcode.cn/problems/number-of-1-bits
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    题解一、将数值与1进行&运算,可得最后一位是否1,若为1,进行记数,并右移,否则直接右移。

    ①可按位数限制,Java中int类型为32位,可将各位均进行比较,代码如下。

    1. class Solution{
    2. public int hammingWeight(int n){
    3. int count = 0;
    4. for(int i = 0; i < 32; i++){
    5. count += n & 1;
    6. n >>= 1;
    7. }
    8. return count;
    9. }
    10. }

    ②可按位进行逻辑右移(>>>,最高位补0),当数据的值为0时,退出while,即可得到1的数量。

    (>>算数右移,最高位用符号位补,负数补1,正数补0)

    1. class Solution{
    2. public int hammingWeight(int n){
    3. int count = 0;
    4. while(n != 0){
    5. count += n & 1;
    6. n >>>= 1;
    7. }
    8. return count;
    9. }
    10. }

    题解二、使用(n & ( n - 1))可将末尾的1消除为0,数据进行-1后,最低位的1变为0,后面的0变为1,所以(n-1)与n进行&操作,最低位1以及之后的数据均变为0。

    详见【负雪明烛】详解位运算,附本题躲坑指南 - 位1的个数 - 力扣(LeetCode)

    统计变为全0进行的次数即可。

    1. class Solution{
    2. public int hammingWeight(int n){
    3. int count = 0;
    4. while(n != 0){
    5. n &= (n - 1);
    6. count++;
    7. }
    8. return count;
    9. }
    10. }

  • 相关阅读:
    工业物联网关-modbus数据采集程序(1-程序设计)
    Linux——Linux用户管理、组管理和文件管理常用命令总结
    ipad下载的文件在哪里可以找到
    OpenJudge NOI题库 1.2 编程基础之变量定义、赋值及转换
    国产猫粮高端化难题不少,网易天成拿什么出众?
    判断RecyclerView的条目是否满一个屏幕
    vue3 - 开发和生产环境通过Mock模拟真实接口请求
    单元测试用例到底该如何设计?
    Sora - 探索AI视频模型的无限可能
    python+pytest接口自动化(11)-测试函数、测试类/测试方法的封装
  • 原文地址:https://blog.csdn.net/Zoro_666/article/details/126068942
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号