当前位置: 首页 > ds >正文

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

题目

  1. 二进制中“1”的个数

代码实现

二进制中“1”的个数

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

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

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

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

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

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

结尾

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

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

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

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

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

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

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


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

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

http://www.xdnf.cn/news/16747.html

相关文章:

  • 【术语扫盲】MCU与MPU
  • [CSP-J 2022] 逻辑表达式
  • 【C++算法】76.优先级队列_前 K 个高频单词
  • 【VOS虚拟操作系统】未来之窗打包工具在前端资源优化中的应用与优势分析——仙盟创梦IDE
  • Java奖客富翁系统:注册登录抽奖全实现
  • 小程序视频播放,与父视图一致等样式设置
  • Python爬虫01_Requests第一血获取响应数据
  • 【Python】数据可视化之聚类图
  • logtrick 按位或最大的最小子数组长度
  • Apache Ignite 的对等类加载(Peer Class Loading, P2P Class Loading)机制
  • 快速了解逻辑回归
  • 6、微服务架构常用十种设计模式
  • PLC如何进行远程维护远程上下载程序?
  • QT项目 -仿QQ音乐的音乐播放器(第三节)
  • 基于dcmtk的dicom工具 第九章 以json文件或sqlite为数据源的worklist服务(附工程源码)
  • Qt 移动应用性能优化策略
  • 复现cacti的RCE(CVE-2022-46169)
  • TDengine 中 TDgpt 异常检测的机器学习算法
  • Leetcode——41. 缺失的第一个正数
  • 数学建模——非线性规划
  • 大文档免费翻译方法分享
  • 政策合规性前端设计:工业数据安全的可视化技术规范与落地实践
  • C语言进阶(指针2.函数指针和指针函数,二级指针,指针数组和数组指针,void*指针)
  • 数据结构 排序(2)---选择排序
  • 使用鼠标在Canvas上绘制矩形
  • PDF转Word免费工具!批量处理PDF压缩,合并, OCR识别, 去水印, 签名等全功能详解
  • Shader开发(四)计算机图形学中的颜色定义
  • Java 大视界 -- Java 大数据机器学习模型在金融信用评级模型优化与信用风险动态管理中的应用(371)
  • Day23-二叉树的层序遍历(广度优先搜素)
  • [明道云]-基础教学2-工作表字段 vs 控件:选哪种?