LeetCode算法题-Number of 1 Bits(Java实现)

特征拼接(Feature Concatenation)技术全景解析 特征拼接是深度学习中的核心特征融合技术,通过在指定维度连接不同来源的特征张量,创造性地解决了多源、多尺度特征融合的关键挑战。这种简单却强大的操作已成为现代神经网络架构设计的基石。 阅读详情

这是悦乐书的第186次更新,第188篇原创

01 看题和准备

今天介绍的是LeetCode算法题中Easy级别的第45题(顺位题号是191)。编写一个带无符号整数的函数,并返回它所具有的“1”位数。例如:

输入:11
输出:3
说明:整数11具有二进制表示00000000000000000000000000001011

输入:128
输出:1
说明:整数128具有二进制表示00000000000000000000000010000000

本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。

02 第一种解法

这道题与昨天的题类似,都是和位操作有关。此题是统计二进制位“1”的出现次数,对此可以使用与(&)运算,对于n还是依次从左往右移动。

public int hammingWeight(int n) {
    int count = 0;
    for(int i=0; i<32; i++){
        if ((n&1) == 1) {
            count++;
        }
        n = n >> 1;
    }
    return count;
}

03 第二种解法

对于上面的解法,还可以再简化下,省掉那个判断,因为和1做与运算,如果最后一位是1,整个运算结果就是1,就相当于是自增加1。

public int hammingWeight2(int n) {
    int count = 0;
    for (int i=0; i<32; i++) {
        count += n&1;
        n = n >> 1;
    }
    return count;
}

04 第三种解法

上面的两种解法都是拿n和1做与运算,其实还可以换种思路,使用n和n-1做位运算。此时,分两种情况:当n的二进制最后一位是1的时候,n-1的二进制位除了最后一位和n不一样,其他位都是一样的,此时n&(n-1)得到的结果是n-1,此时消除的是n的二进制最后一位;当n的二进制最后一位是0的时候,n-1的二进制位最后一位是1,n从最后一位1往左开始和n-1的对应位是一样的,此时n&(n-1)得到的是n最后一位1出现位置往左之前的位,此时消除的n的二进制位中最后出现的1。每次都会消除一位1,直到n最后变成0。

例如:

10 1010
9 1001
与:1000

14 1110
13 1101
与:1100

public int hammingWeight3(int n) {
    int count = 0;
    while (n != 0) {
        count++;
        n = n & (n - 1);
    }
    return count;
}

05 第四种解法

将n变成二进制字符串,然后依次查找字符串中的1,并记数。其中,整数1的Unicode十进制值是49,所以使用charAt方法时,是和49判断。

public int hammingWeight4(int n) {
    int count =0;
    String binary = Integer.toBinaryString(n);
    for (int i =0; i<binary.length(); i++) {
        if (binary.charAt(i) == 49) {
            count++;
        }      
    }
    return count;
}

06 第五种解法

直接使用包装类Integer自带的方法bitCount即可。

public int hammingWeight5(int n) {
    return Integer.bitCount(n);
}

07 小结

算法专题目前已连续日更超过一个月,算法题文章45+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。

以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!

C# 接口和抽象类 文章目录1. 什么是接口和抽象类2. 接口与单元测试3. 依赖&耦合4. 依赖翻转5. 单元测试 1. 什么是接口和抽象类 接口和抽象类都是“软件工程产物” 具体类->抽象类->接口:越来越抽象,内部实现的东西越来越少 抽象类是未完全实现逻辑的类(可以有字段和非public成员,它们代表了“具体逻辑”) 抽象类为复用而生:专门作为基类来使用,也具有解耦功能 封装确定的,开放不确定的,推迟到合适的子类中去实现 接口是完全未实现逻辑的“类”(“纯虚类”;只有函数成员;成员全部publi 阅读详情

相关推荐

App渗透 - 人脸识别登录绕过

一、APP抓包和逆向破解加密算法打开APP是一个登录框抓包后发现参数被加密了使用Jadx脱源码发现,并没有加壳也没有混淆,运气很好根据经验,先搜索Encrypt、Decrypt等关键字,发现在Common.js中有一个encryptData函数定位过去,一套加解密算法都写好了放在这放到浏览器console里面调试,果然没错二、寻找注入点首先测试了一下注入明文:{"userName":"TEST'...

渗透测试研究中心 2827

MSL原则解析:模块化分离与层次化架构的软件设计实践

模块化是软件工程中的基础设计理念,通过将复杂系统拆分为独立的功能单元来降低耦合度。其核心原理基于关注点分离,确保每个模块职责单一且边界清晰。在技术价值层面,模块化设计显著提升代码的可维护性和可测试性,同时促进团队协作效率。应用场景广泛覆盖从单体架构到微服务系统的各种规模项目,特别是在需要快速迭代的企业级应用开发中效果显著。层次化架构作为模块化的延伸,通过建立清晰的依赖方向进一步规范系统结构。本文以MSL原则为具体切入点,深入探讨如何通过模块化分离和层次化设计构建健壮的软件系统,其中涉及Spring Boot

weixin_34008933的博客 521

ROS2初级面试题汇总

总结和收集了一些关于ros2的问题和解答记录

qq_57633442的博客 5576

Leetcode: Number of Bits

QuestionWrite a function that takes an unsigned integer and returns the number of ’1’ bits it has (also known as the Hamming weight).For example, the 32-bit integer ’11’ has binary representation 00000

ayst123 的专栏 480

【生信】全基因组测序(WGS)

1、全基因组测序(WGS) 的定义 2、GWS流程 2.1准备工作——分析软件 2.2原始数据质控 2.3数据预处理 2.4变异检测

weixin_40695088的博客 4万+

Duilib的简单使用(五、DuiDesigner/DuiEditor的下载编译)

一、前言 在Duilib的简单使用(一、duilib demo)中我们介绍了利用duilib简单的构造一个项目 在Duilib的简单使用(二、xml实现界面与业务分离)中我们介绍了XML在duilib中的使用 在Duilib的简单使用(三、界面逻辑交互)中我们已经知道如何简单的进行界面的交互 在Duilib的简单使用(四、换肤)中,我们提了一下Duilib强大的一键换肤功能。 通过之前的说明,我们知道duilib是通过xml来分离界面和业务逻辑的,但是xml如果不能预览,那每次敲一个再运行一下看看效果,这不

LyRics1996的博客 2890

191. Number of 1 Bits | Java最短代码实现

原题链接:191. Number of 1 Bits 【思路】 运用位运算中的一个技巧n &= (n - 1)可以将最右边的一个1置0后返回给n // you need to treat n as an unsigned value public int hammingWeight(int n) { int res = 0; while (n

hdtopku 688

QT快速配置MSVC2017编译环境(3分钟极简指南)

本文提供了一份3分钟极简指南,帮助开发者快速配置QT的MSVC2017编译环境。通过断网安装、精准勾选组件和配置QT Creator编译器路径等步骤,大幅提升QT开发效率。MSVC2017作为Windows平台高性能C++编译器,特别适合处理大型QT项目,编译速度优势明显。

weixin_30399821的博客 507

LeetCode-Number of 1 Bits

问题描述Write a function that takes an unsigned integer and returns the number of ’1’ bits it has (also known as the Hamming weight).For example, the 32-bit integer ’11’ has binary representation 000000000

canglingye的专栏 7068

BUCK电路的大信号模型与小信号模型推导

推导开关电源信号模型的核心是将非线性开关过程线性化,常用。如需具体拓扑的推导细节,可进一步说明!

创新改变世界! 1179

Challenge 6 - OSCP C

开放了161端口,直接snmpbulkwalk扫描得到账号密码试了那几个web端口,发现可以登录8083的vesta,但是需要用户名大写Jack接着登录之后里面可以创建计划任务,直接弄个反弹shell,一分钟回弹。得到shell后,运行linpeas.sh提供了几个可能的漏洞,挨个试一下。

羽的博客 4159

Leetcode: 191. Number of 1 Bits(JAVA)

【问题描述】 Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight). For example, the 32-bit integer ’11' has binary represent

莫名的程序猿 1049

反激电源及其变压器计算与绕制

本内容以一个宽电压输入 24V3A 输出的 72W 反激电源为例来计算电路的各个参数和器件选型,包含反激变压器的计算与绕制方法。

让你爱上电路设计 1940

java bits_LeetCode算法题-Number of 1 Bits(Java实现)

这是悦乐书的第186次更新,第188篇原创01 看题和准备今天介绍的是LeetCode算法题中Easy级别的第45题(顺位题号是191)。编写一个带无符号整数的函数,并返回它所具有的“1”位数。例如:输入:11输出:3说明:整数11具有二进制表示00000000000000000000000000001011输入:128输出:1说明:整数128具有二进制表示00000000000000000000...

weixin_36303462的博客 171

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

LeetCode Number of 1 Bits

Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight).For example, the 32-bit integer ’11' has binary representation 000000000000

Coding for Dreams 2338

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

LeetCode算法题-Prime Number of Set Bits in Binary Representation(Java实现)

这是悦乐书的第311次更新,第332篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第180题(顺位题号是762)。给定两个正整数L和R,在[L,R]范围内,计算每个整数的二进制数中1的个数,判断1的个数是否是一个素数。例如,21的二进制数是10101,其中1的个数有3个,3是一个素数。例如: 输入:L = 6,R = 10 输出:4 说明: 6 --> 110...

小川的博客 603

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

191. Number of 1 Bits*

191. Number of 1 Bits* https://leetcode.com/problems/number-of-1-bits/ 题目描述 Write a function that takes an unsigned integer and return the number of ‘1’ bits it has (also known as the Hamming weight)....

珍妮的选择的博客 421

LeetCode Top Interview Questions 191. Number of 1 Bits (Java版; Easy)

welcome to my blog LeetCode Top Interview Questions 191. Number of 1 Bits (Java版; Easy) 题目描述 Write a function that takes an unsigned integer and return the number of '1' bits it has (also kn...

littlehaes的博客 146

Leetcode 191 Number of Bits and n & n -1

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.youkuaiyun.com/nwpu_geeker/article/details/79763511 ———————————————— Leetcode 191 Number of 1 Bits 求二进制中1的个数。发现有大佬用来(n&n-1)。觉得很神奇。 ...

吃口雪花的博客 200

LeetCode C++ 191. Number of 1 Bits【位运算】简单

Write a function that takes an unsigned integer and return the number of ‘1’ bits it has (also known as the Hamming weight). Example 1: Input: 00000000000000000000000000001011 Output: 3 Explanation: The input binary string 00000000000000000000000000001011

memcpy0的博客 737

Leetcode_191_Number of 1 Bits

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.youkuaiyun.com/pistolove/article/details/44486547 Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight). For example, the 32-bit integer ’11' has binary

皮斯特劳沃 1816

Java [Leetcode 191]Number of 1 Bits

题目描述: Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as theHamming weight). For example, the 32-bit integer ’11' has binary representatio...

dkk37351的博客 187

【leetcode】191. 位1的个数( Number of 1 Bits )

题目描述 【leetcode】191. 位1的个数( Number of 1 Bits ) 编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。 进阶: 如果多次调用这个函数,你将如何优化你的算法? 第一次解答 思路1: 朴素的想法就是,挨个便利所有bits,计算个数。 思路2: 函数若会被调用多次,一个优化的方法就是, 建立一个256个...

Liber-coder的博客 239

[leetcode] Number of 1 Bits

1.先上题: Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as theHamming weight). For example, the 32-bit integer ’11' has binary representati...

147

leetcode 191. Number of 1 Bits

Write a function that takes an unsigned integer and returns the number of ‘1’ bits it has (also known as the Hamming weight).Note:Note that in some languages, such as Java, there is no unsigned integer type. In this case, the input will be given as a signe

fuyouzhiyi的博客 948

LeetCode 191 -Number of 1 Bits ( JAVA )

Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight). For example, the 32-bit integer ’11' has binary representation 000000

UckyK的专栏 1547
上一篇: LeetCode算法题-Reverse Bits(Java实现)
下一篇: LeetCode算法题-House Robber(Java实现)
程序员小川
博客等级 码龄10年 47粉丝 305原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值