leetcode 191 Number of 1 Bits C++
2016-05-15 21:11
726 查看
这个一分钟搞定。
就是要对位运算有一定的了解
乘2相当于整体二进制位左移一位,而且这种运算方式比直接乘要快。
因此只要判断是奇数就加一,然后整体右移一位。
刚看到了一种更快的方式,直接与操作。
就是要对位运算有一定的了解
乘2相当于整体二进制位左移一位,而且这种运算方式比直接乘要快。
因此只要判断是奇数就加一,然后整体右移一位。
class Solution { public: int hammingWeight(uint32_t n) { int count = 0; while(n){ if (n % 2 == 1) count++; n = n>>1; } return count; } };
刚看到了一种更快的方式,直接与操作。
class Solution { public: int hammingWeight(uint32_t n) { int res = 0; while(n) { n &= n - 1; ++ res; } return res; } };
相关文章推荐
- 【LeetCode】120. Triangle 基于C++和Java的分析及解法,动态规划
- C++内存分布 虚表 虚指针(非常重要)
- leetcode 235 Lowest Common Ancestor of a Binary Search Tree C++
- PAT (Basic Level) Practise (中文)1053. 住房空置率 (20)
- C++编程---线程技术初识
- C++虚基类的内存布局(下)
- C++虚基类的内存布局(上)
- C++虚函数表解析
- C++ 函数重载
- LeetCode OJ 题解目录(C++ & Python)
- HDU 2159-FATE(完全背包)
- C++如何防止头文件被二次编译
- C++ 在文本文件后追加写入字符串
- 基于flex和bison的C语言代码分析器统计圈复杂度程序设计图
- java中接口类似c++中纯虚函数
- C++:将一元人民币兑换成1、2、5分的硬币,求换法
- C与C++连续赋值的区别
- C++:输入两个整数,将它们按从小到大的顺序输出(使用变量的引用)
- C++:建立一个被称为sroot()的函数,返回其参数的二次方根。重载sroot()3次,让它返回整数、长整数与双精度的二次方根
- 怎样创建一个链表?