剑指offer 面试15题
2024-09-03 09:05:34
面试15题:
题目:二进制中1的个数
题:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
解题思路一:
最佳方法:把一个整数减去1,再和原整数做“与运算”,会把该整数最右边的1变成0。那么一个整数的二进制中表示中有多少个1,就可以进行多少次这样的操作。
解题代码:
# -*- coding:utf-8 -*-
class Solution:
def NumberOf1(self, n):
# write code here
count=0
if n < 0:
n=n & 0xffffffff
while (n):
n=(n-1) & n
count += 1
return count
注意:如果该整数是负数,要把它和0xffffffff相与,消除负数的影响。
解题思路二:利用Python特性
解题代码:
# -*- coding:utf-8 -*-
class Solution:
def NumberOf1(self, n):
# write code here
return bin(n&0xffffffff).count("")
最新文章
- FPGA 开发笔记 点滴
- C#写入和读出文本文件
- gulp插件(gulp-jmbuild),用于WEB前端构建
- AJAX向服务器发送请求
- WPF 显示gif
- A New Tetris Game
- LINUX消息队列实战之一
- SQLSERVER2000以上 Ad Hoc Distributed Queries的启用与关闭
- apache kafka源码分析-Producer分析---转载
- Activitys, Threads, &; Memory Leaks
- 安装m2eclipse
- Python之列表方法
- Codeforces 806 D. Perishable Roads Dijkstra
- 如何更优雅的在kubernetes平台下记录日志
- WRI$_ADV_OBJECTS表过大,导致PDB的SYSAUX表空间不足
- 20155217《网络对抗》Exp03 免杀原理与实践
- duilib踩坑记录
- 对不队——Alpha冲刺
- 如何在Linux上安装服务器管理软件Cockpit
- JDBC使用游标实现分页查询的方法
热门文章
- html5在移动端的屏幕适应性问题
- Atitit.编程语言新特性&#160;通过类库框架模式增强&#160;提升草案&#160;v3&#160;q27
- Visual Studio : Debug >; Start new instance添加快捷键
- 实现html锚点的两种方式
- php画图应用之验证码
- org.mockito.exceptions.misusing.CannotStubVoidMethodWithReturnValue
- iOS 如何缩小打包项目ipa大小
- python 开发技巧(3)-- 连接mysql 出现错误 ModuleNotFoundError: No module named &#39;MySQLdb&#39;
- Linux gdb调试器
- Linux 常用文件管理命令