剑指Offer-二进制中1的个数()

JAVA实现输入一个整数,输出该数二进制表示中1的个数(《剑指offer》) 题目: 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 这个题目有个比较有意思并且被公认的解法,我就先贴答案吧: public class Solution { public int NumberOf1(int n) { int count = 0; while(n!= 0){ count++; 阅读详情

题目描述

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

解题思路

在计算机中存储的数为补码的形式,因此 只要比较即可
1.移位的方式
使用一个比较的对象 index = 1 每次左移1位 1-》2 -》4 ,与原数进行与运算,如果为1则为计数加1.
2.转化为二进制进行统计。 Integer.toBinaryString(n); string.toCharArray();
方法一:

public class Solution {
    public int NumberOf1(int n) {
        int index = 1;
        int num = 0;
        while(index != 0){
            if((n & index) != 0)
                num ++;
            index = index << 1;
        }
        return num;
    }
}

方法二:

public class Solution {
    public int NumberOf1(int n) {
        int number = 0;
        String string = Integer.toBinaryString(n);//int -> 二进制String
        char[] chars = string.toCharArray();   // string -> charArray
        int i = 0;
        for( ; i < string.length() ; i++){
            if(chars[i]=='1')
                number++;
        }
        return number++;
    }
}
优雅谈大模型:“System2”与“System 1” 研究人员探索了三种System 2方法——RaR、S2A 和 BSM,这些方法已经成功提炼到新的LLM,这个新的模型与System 1相比,产生了更好的结果,而且成本低于System 2。然而这种方法是有局限性,只能适用于特定的任务。 阅读详情

相关推荐

RK3588嵌入式AI部署实战:从环境搭建到模型推理全链路

嵌入式AI部署涉及交叉编译、NPU驱动、模型量化与运行时环境等多个技术环节,其核心挑战在于软硬件版本矩阵的严格匹配。在边缘计算场景中,RK3588凭借6TOPS NPU算力成为热门平台,但环境搭建与模型转换的复杂性常导致部署效率低下。通过容器化工具链管理、量化参数对齐及多线程推理优化,可显著提升部署稳定性与推理性能。典型应用包括智能安防、工业质检与视频结构化分析。本文围绕RK3588的AI部署与环境搭建,系统梳理从系统烧录到板端推理的完整实践路径。

weixin_42520573的博客 282

剑指offer刷题————二进制中1的个数

问题重述: 题目:请实现一个函数,输入一个整数,输出该整数二进制中1的个数。例如把9表示成二进制位1001,因此如果输入9,则该函数返回2. 解题思路: 在剑指offer上,对于此问题提供了三种解题思路,第一种解题思路不能适应于负数,第二种解题思路还是有一点小问题的,我们在这里只给出第三种也是效率最高的一种解题思路。 如果一个数不为0,那么该整数的二进制中至少有一位是1。 假设最后一位是...

李志杰的博客 250

windows11 远程桌面连接 通过代理连接RDP桌面报错 错误代码0x904 拓展错误代码0x7

打开windows Defender防火墙设置--允许应用通过防火墙更改设置--允许其他应用浏览--进入C:\WINDOWS\system32目录选择mstsc.exe进入C:\Windows\SysWOW64目录h'qmstsc.exe添加后列表里多了一个远程桌面连接,还有一个Remote Desktop Connection,配置网络权限后保存连接成功。

weixin_43978891的博客 1万+

剑指offer系列——剑指 Offer 15. 二进制中1的个数(C语言)

⭐️前面的话⭐️ 大家好!博主开辟了一个新的专栏——剑指offer,我要开始刷题了!这个专栏会介绍《剑指offer》书上所有的面试编程题。并且会分享一些我的刷题心得。由于博主水平有限,如有错误,欢迎指正,如果有更好的解题思路和算法可以分享给博主哦!一起加油!一起努力!剑指 Offer 15. 二进制中1的个数(C语言)

未见花闻的博客 1119

Concentration Inequality(集中不等式)更新版

欢迎来我博客 https://wyue.name/2020/04/17/1/阅读这一篇博文 转载前请联系我,联系方式请见我博客 https://wyue.name/ Concentration inequality 刻画了一组随机变量的和(或者样本平均数)与其期望值的偏离程度,在算法收敛性分析过程中是非常有用的一类不等式。 这次主要总结一下最近一段时间遇到的集中不等式,不仅是不等式形式,...

Yue的博客 4554

NCBI Datasets CLI优化:解决基因组数据下载报错与速度问题

基因组数据下载是生物信息学分析的关键环节,其稳定性和效率直接影响研究进度。NCBI Datasets CLI作为官方命令行工具,常面临连接中断和下载速度慢两大痛点,这主要源于服务器连接限制和网络传输问题。通过自动重试机制和校验修复流程可提升稳定性,而连接复用与CDN加速等技术能显著提高下载效率。在植物基因组等大规模数据场景中,结合脱水模式和增量更新策略可减少70%传输量。本文以艾草基因组项目为例,展示如何通过并行下载和API优化将100个基因组的下载时间从18小时缩短至2小时,为生物信息学研究提供可靠的数据

weixin_29051245的博客 243

剑指 Offer:15. 二进制中1的个数

文章目录1. 题目2. 描述3. 实现方法3.1 方法 13.1.1 思路3.1.2 实现 1. 题目 剑指 Offer 15. 二进制中1的个数 2. 描述 请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。 示例 1: 输入:00000000000000000000000000001011 输出:3 解释:输入的二进制串 00000000000000000000000000001011 中,共

村雨遥 567

OSError We couldn‘t connect to https://huggingface.co to load file, couldn‘t find it chatglm3-6b解决方案

本文主要介绍了OSError: We couldn’t connect to https://huggingface.co to load this file, couldn’t find it in the cached files and it looks like THUDM/chatglm3-6b is not the path to a directory containing a file named config.json.解决方案,希望能对学习python的同学们有所帮助。

weixin_43178406的博客 5万+

《剑指Offer》11. 二进制中1的个数

题目:11. 二进制中1的个数 知识点:位运算 题目描述: 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 解题思路: 解法一:这是我当时自己的思路,即通过除二取余法来求输入的十进制数字的二进制的每一位,再判断其是否为一,当输入数字为负数的时候,取其补码(原数字取反加一),我使用的取补码的方式是直接用无符号的最大值加上负数再加一,相当于负数补码对应的正数,然后再使用前面...

Coder Yang 508

国产化替代落地:C#+Avalonia跨平台开发(麒麟系统适配全流程)

摘要: 随着国产化替代政策的推进,麒麟操作系统成为国产替代的重要选择。本文介绍了如何使用C#和Avalonia框架开发跨平台应用,适配麒麟系统。Avalonia支持Windows、Linux(包括麒麟)和macOS,通过XAML设计UI,便于开发者快速上手。文章详细讲解了开发环境配置、XAML控件设计、Linux特性适配及性能优化,并强调政府30%研发补贴带来的政策红利。未来,随着国产系统生态完善,C#+Avalonia将成为企业跨平台开发的高效解决方案。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 3475

Autosar_MCAL_Port

PORT Driver就是对微控制器(MCU)的整个PORT模块进行初始化配置。很多端口和管脚被分配有多种不同的功能,即可以进行引脚功能复用,比如通用I/O、adc、pwm、spi等功能。因此,对PORT必须有一个整体的配置和初始化,对各管脚的具体配置和使用取决于微控制器和ECU的引脚功能分配。PORT初始化数据应当尽可能高效地写到每个端口。DIO驱动中所用到的端口的配置和初始化都是在PORT驱动模块中完成的。因此,在使用DIO功能之前,应先进行PORT的初始化。1、PortContainer说明。

不断debug,优化中…… 239

剑指offer之二进制中1的个数

剑指offer之二进制中1的个数题目描述解题思路Code总结 题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 解题思路 一开始看到题目说负数用补码表示,以为是让我用补码表示输入的十进制负数再count,没想到意思是输入的就是补码表示的负数(我一直默认输入十进制,其实也可以二进制等TAT)。但是虽然是负数的补码右移会在最高位补1,因此会陷入死循环。。所以我一开始做题...

gq__97的博客 129

g2o&PCL 四阶多项式拟合

g2o&PCL 四阶多项式拟合

dayuhaitang1的博客 140

【一刷《剑指Offer》】面试题 10:二进制中 1 的个数

观察这个运算:n & (n−1),其运算结果恰为把 n 的二进制位中的最低位的 1 变为 0 之后的结果。这样我们就可以利用这个位运算的性质加速我们的检查过程,我们不断地让当前的 n 与 n−1 做与运算,直到 n 的二进制位全部变为 0 即可。我们都只知道数字 1 与数字相位与运算,其实只是最后一位为 1 就是 1,最后一位为 0 就是 0,这样我们就只需要将数字 1 移位运算,就可以遍历二进制的每一位,再去做位与运算,结果为 1 的就是二进制中为 1 的。2、推荐:方法一(n & (n-1))

Elena's Blog 967

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【剑指offer】二进制中1的个数

剑指offer上的第10题,在九度OJ上测试通过。 时间限制:1 秒内存限制:128 兆 题目描述: 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 输入: 输入可能包含多个测试样例。 对于每个输入文件,第一行输入一个整数T,代表测试样例的数量。对于每个测试样例输入为一个整数。 。n保证是int范围内的一个整数。

兰亭风雨的专栏 5374

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

剑指offer15 二进制中1的个数

剑指offer15-AcWing-26.二进制中1的个数 输入一个32位整数,输出该数二进制表示中1的个数。 注意: 负数在计算机中用其绝对值的补码来表示。 样例1 输入:9 输出:2 解释:9的二进制表示是1001,一共有2个1。 样例2 输入:-2 输出:31 解释:-2在计算机里会被表示成11111111111111111111111111111110,一共有31个1。 思路1: &nbsp...

WangXu__的博客 280

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

剑指Offer – 二进制中1的个数

题目描述 输入一个整数,输出该数二进制表示中 1 的个数。其中负数用补码表示。 考察二进制和位运算。 解题思路 代码一: 1. 判断整数二进制最右边一位是不是1,然后整体向右移一位,最前面补0,直至整个整数为0。  2. 例如整数10的二进制为0000 0000 0000 0000 0000 0000 0000 1010(Java的int类型占用4个字节,即32位)。只看后四位的话,右移一位变成0101,继续右移为0010、0001、0000,可见右移三次整数就变成0。若右移过程中最后一位为1,则记录下

生命不息,Coding不止 1048

【剑指offer】11-二进制中1的个数

本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。 在线测试平台:牛客网 编程资料获取:CodeLab 1-Description 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示 2-Solution 1-右移整数 注意这里强调了负数的存在,如果我们单纯的将整数n逐位进行右移将进入死循环,例如将负数0x80000000右移1位的时候,并不是简单地把最高位1移到...

心之所向,敝履以往 258

11 图解剑指Offer 二进制中1的个数 Java题解

11 图解剑指Offer 二进制中1的个数 Java题解11 图解剑指Offer 二进制中1的个数 Java题解题目链接题目描述题解:图解:代码:复杂度 11 图解剑指Offer 二进制中1的个数 Java题解 题目链接 题目描述 输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。 题解: n & (n - 1)的左右是消除最右边的1,每循环一次count++,即可求出1的个数,while循环直到 n 等于0。 图解: 代码: public class Solution {

Vaxue的博客 362

剑指Offer(十一):二进制中1的个数

剑指Offer(十一):二进制中1的个数 搜索微信公众号:‘AI-ming3526’或者’计算机视觉这件小事’ 获取更多算法、机器学习干货 csdn:https://blog.youkuaiyun.com/baidu_31657889/ github:https://github.com/aimi-cn/AILearners 一、引子 这个系列是我在牛客网上刷《剑指Offer》的刷题笔记,旨在提升下自己的...

小明的博客 528

剑指offer:输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。

剑指offer算法题 进制转换 补码原码反码 题目描述 输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。 题目分析 解法一 用1与n的每一位相与,所得结果为1则该数位是1,计算完成后将n右移1位。注意这里的右移用>>>,代表无符号右移,若用>>右移对负数计算是会陷入死循环。 解法二 同样是每一位与1相与,这次我们要做的是将1向左移,这样我们不用考虑负数的问题。 最优解 每次计算都是把最右的1计算并清除掉,这样就只剩下其他的1,并且没有新加1。所以和是不是负

gaozhuang63的博客 1930

21. leetCode--剑指Offer15二进制中1的个数

请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数。 例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。

weixin_45267102的博客 236

LeetCode–二进制中1的个数

LeetCode–二进制中1的个数 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 介绍 剑指 Offer 15. 二进制中1的个数 主站 191 题目 请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。 示例 1: 输入:00000000000000000000000000001011 输出:3 解释:输入的二进制串

归子莫的博客 1118

剑指Offer: 二进制中1的个数

剑指Offer: 二进制中1的个数 题目描述 输入一个32位整数,输出该数二进制表示中1的个数。 样例1 输入:9 输出:2 解释:9的二进制表示是1001,一共有2个1 样例2 输入:-2 输出:31 解释:-2在计算机里会被表示成11111111111111111111111111111110, 一共有31个1 算法1 位运算 末尾有1,计数器自增 将待统计的数值n,右移1...

Erice_s的博客 304

剑指offer第11题:二进制中1的个数

剑指offer第11题:二进制中1的个数题目描述分析二进制 原码、反码、补码源码 题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 例如:输入1 输出1 分析 二进制 原码、反码、补码 二进制储存: 在计算机中,正整数储存用的原码,负整数储存用的补码。 与运算:整数a的二进制末尾是1,则a & 1 = 1,否则 a & 0 = 0,所以可以用循环将整数右移...

可爱的小腊肉 147

剑指offer—15.二进制中 1 的个数——分析及代码(Java)

剑指offer——15.二进制中 1 的个数——分析及代码[Java]一、题目二、分析及代码1. 各位依次判断(1)思路(2)代码(3)结果2. 更高效的算法(1)思路(2)代码(3)结果三、其他 一、题目 输入一个整数,输出该数二进制表示中 1 的个数,其中负数用补码表示。 二、分析及代码 1. 各位依次判断 (1)思路 判断二进制中 1 的个数,可以通过将输入整数的各个位置依次与仅该位置为 1...

江南土豆的博客 276
上一篇: 剑指Offer 矩形覆盖 (Java)
下一篇: LinuxCentOS7 系统下离线安装Nginx和可定制化增加模块安装nginx
happytaohaha
博客等级 码龄9年 37粉丝 187原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值