[剑指offer]二进制中1的个数
来源:互联网 发布:大数据 涂子沛 epub 编辑:程序博客网 时间:2024/05/02 02:39
分析:先来看一个错误答案(没错,就是我):
class Solution {public: int NumberOf1(int n) { int ret=0; while(n){ ret+=n&1; n=n>>1; } return ret; }};把n每次右移一位,如果和1与为1,结果加1。为什么会错呢?因为有负数啊!负数右移的时候补1啊!就死循环啦!
正解:n右移不行,可以把1左移啊,效果是一样的,也没有负数的问题。
class Solution {public: int NumberOf1(int n) { int ret=0; int flag=1; while(flag){if(flag&n){ ret++; } flag=flag<<1; } return ret; }};
最佳答案:n里有多少个1,就循环多少次,上一个答案是总位数。
class Solution {public: int NumberOf1(int n) { int ret=0; while(n){ ret++; n=n&(n-1); } return ret; }};
0 0
- 剑指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的个数
- 剑指offer|二进制中1的个数
- 两个不一样的fragment中控件id一样造成的bug
- MySQL命令行操作复习
- 一个帖子解决服务器与客户端传递对象的问题,JSON解析两种方法
- 理解LinkedHashMap
- 整体架构CCCamera 摄像机
- [剑指offer]二进制中1的个数
- Web Service 的工作原理
- 笔记一:n个元素的所有排列递归算法
- springMVC(3)------RequestMapping注解常用功能分析
- 【排序】HDU1872稳定排序
- 兰州骑行:74公里单骑什川镇
- JDK中System.getProperty()方法介绍
- Excel表格的加密与解密
- Cocos2d-x 整体描述