《剑指offer》-算法篇-位运算

题目

  1. 二进制中"1"的个数

代码实现

二进制中"1"的个数

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

思路:求"1"的个数等价于求n-1与n进行"与"运算后不等于0所需要的运算次数。注意:这里的整数可能是负的,补码的形式中的最高位是"1",这样会导致无限循环。因而,根据一般的机器的运算的位数(32位),需要将负数的补码形式乘以0xffffffff,再判断while循环的条件。

python 复制代码
# -*- coding:utf-8 -*-
class Solution:
    def NumberOf1(self, n):
        # write here
        count = 0
        if n < 0:
            n = n & 0xffffffff
        #对于负数,二进制的第一位是1,因而,会使得while条件判断是死循环。
        #为此,设置了n<0的判断条件,将n看做是一个有符号的数。
        #而且,对于Python,整数的表示位数是不受限制的,具体显示的大小会受到
        #机器的限制,一般位数是32位。
        while n:
            count += 1
            n = (n - 1) & n
        return count

**扩展题目:**Leetcode中的第191题(位1的个数 https://leetcode-cn.com/problems/number-of-1-bits/)

题目描述:编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 '1' 的个数

区别在于:输入是一个无符号整数,除去对负数的判断,其余部分是一样的。

结尾

亲爱的读者朋友:感谢您在繁忙中驻足阅读本期内容!您的到来是对我们最大的支持❤️

正如古语所言:"当局者迷,旁观者清"。您独到的见解与客观评价,恰似一盏明灯💡,能帮助我们照亮内容盲区,让未来的创作更加贴近您的需求。

若此文给您带来启发或收获,不妨通过以下方式为彼此搭建一座桥梁: ✨ 点击右上角【点赞】图标,让好内容被更多人看见 ✨ 滑动屏幕【收藏】本篇,便于随时查阅回味 ✨ 在评论区留下您的真知灼见,让我们共同碰撞思维的火花

我始终秉持匠心精神,以键盘为犁铧深耕知识沃土💻,用每一次敲击传递专业价值,不断优化内容呈现形式,力求为您打造沉浸式的阅读盛宴📚。

有任何疑问或建议?评论区就是我们的连心桥!您的每一条留言我都将认真研读,并在24小时内回复解答📝。

愿我们携手同行,在知识的雨林中茁壮成长🌳,共享思想绽放的甘甜果实。下期相遇时,期待看到您智慧的评论与闪亮的点赞身影✨!

万分感谢🙏🙏您的点赞👍👍、收藏⭐🌟、评论💬🗯️、关注❤️💚~


自我介绍:一线互联网大厂资深算法研发(工作6年+),4年以上招聘面试官经验(一二面面试官,面试候选人400+),深谙岗位专业知识、技能雷达图,已累计辅导15+求职者顺利入职大中型互联网公司。熟练掌握大模型、NLP、搜索、推荐、数据挖掘算法和优化,提供面试辅导、专业知识入门到进阶辅导等定制化需求等服务,助力您顺利完成学习和求职之旅(有需要者可私信联系)

友友们,自己的知乎账号为**"快乐星球"**,定期更新技术文章,敬请关注!

相关推荐
花酒锄作田3 小时前
Pydantic校验配置文件
python
hboot3 小时前
AI工程师第四课 - 深度学习入门
pytorch·python·神经网络
罗西的思考6 小时前
机器人 / 强化学习】HIL-SERL:人类在环驱动的具身智能进化框架
人工智能·算法·机器学习
美团技术团队9 小时前
LongCat 开源 VitaBench 2.0:长期动态智能体基准新标杆
人工智能·算法
ZhengEnCi14 小时前
P2M-Matplotlib折线图完全指南-从数据可视化到趋势分析的Python绘图利器
python·matlab·数据可视化
ZhengEnCi16 小时前
P2L-Matplotlib饼图完全指南-从数据可视化到图表定制的Python绘图利器
python·matlab
曲幽16 小时前
你的REST接口还在“过度投喂”数据吗?——FastAPI + GraphQL实战避坑指南
python·fastapi·web·graphql·route·cors·rest·strawberry
用户83580861879117 小时前
基于 Self-RAG 与列表级重排序的进阶 RAG 系统设计与实现
python
To_OC1 天前
LC 207 课程表:刚学图论那会儿,我连这是拓扑排序都没看出来
javascript·算法·leetcode
To_OC1 天前
LC 208 实现 Trie 前缀树:曾被名字劝退,写完发现是送分题
javascript·算法·leetcode