剑指offer--- 二进制中一的个数
来源:互联网 发布:淘宝店怎么增加销量 编辑:程序博客网 时间:2024/06/06 02:24
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
解题思路:
该问题如果使用的是,第一反应中想到的向右移,然后判断target是否为0的方法,会因为负数造成oom。
因此,使用n & (n - 1) 的方式;将一个数减去1,再与原来的数做与运算会将原来的数的最后一位变成0,因此,有多少个1就可以进行多少次这样的运算。
java
public class Solution { public int NumberOf1(int n) {int count = 0; while (n != 0) { count++; n = n & (n - 1); } return count; }}
(1)判断一个数是否为2的整数次方;
(2)判断m,n两个数需要经过多少次运算才能变为同样的数;
阅读全文
0 0
- 剑指offer--- 二进制中一的个数
- 剑指offer:二进制中1的个数
- 剑指offer:二进制中1的个数
- 【剑指offer】二进制中1的个数
- [剑指Offer]二进制中1的个数
- 【剑指offer】二进制中1的个数
- 剑指offer--二进制中1的个数
- 剑指offer:二进制中1的个数
- 剑指offer 二进制中1的个数
- 剑指offer 二进制中1的个数
- 《剑指offer》二进制中1的个数
- 剑指 offer:二进制中1的个数
- 剑指offer-二进制中1的个数
- 剑指offer 二进制中1的个数
- 剑指offer-二进制中1的个数
- 剑指offer 二进制中1的个数
- [剑指offer]二进制中1的个数
- 《剑指offer》-二进制中1的个数
- 初学C#之label无法显示int型
- 【android】android使用命令模拟按键
- 任务调度平台XXL-JOB使用
- Selenium-自动化基础
- java数据类型
- 剑指offer--- 二进制中一的个数
- 什么是Dom4j及其初级使用方法
- go语言并发编程
- 《一刻钟优化MySQL》ISOPHP 2017年会分享内容
- (转)用Python读写Excel文件&&几种模块比较
- AOP原理
- POJ 1144
- 来年春天想当产品经理?我找了一大波牛人带你
- 面试算法(一)—朴素贝叶斯