leetcode笔记—二进制数中1的个数
来源:互联网 发布:西门子s7200软件下载 编辑:程序博客网 时间:2024/06/08 01:00
基本思想:x=x&(x-1)可以消除x最右边的1;
1.给出一个32位的二进制数,统计其中1的个数
class Solution {public: int hammingWeight(uint32_t n) { //n=n&(n-1)可以消去最右边的1 int res=0; while(n) { n=n&(n-1); res++; } return res; }};
2.翻转一个32位数
class Solution {public: uint32_t reverseBits(uint32_t n) { uint32_t result = 0; // 结果存放在这里 // 以下循环处理每个比特 for (int i = 0; i < 32; i++) { // 取出输入的最后一位加入 result,其他位依次左移 result = (result << 1) | (n & 1); n >>= 1; // 右移抛弃掉最后一位 } return result; }};
3.给出数n,统计(0<=i<=n)i的二进制数中1的个数
class Solution {public: vector<int> countBits(int num) { //x&(x-1)可以消去最右边的1 vector<int> res; for(int i=0;i<=num;i++) { res.push_back(incount(i)); } return res; } int incount(int i) { int count=0; while(i) { i=i&(i-1); count++; } return count; }};
0 0
- leetcode笔记—二进制数中1的个数
- 求二进制数中1的个数
- 计算二进制数中1的个数
- 二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中 1 的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 计算二进制数中1的个数
- C语言常用的代码组织形式--多文件
- Linux-内存管理-待补充
- android自定义view之地图(一)
- C++拷贝构造函数的参数为什么必须使用引用类型(无限递归)
- PHP代码审计规则整理
- leetcode笔记—二进制数中1的个数
- zoj5093Battle ships【二分图 棋盘覆盖有断点】
- Oracle EBS登陆后,直接打开某个特定Form或Page
- leetcode-26. Remove Duplicates from Sorted Array
- Android学习记录(五) 记录一下最近遇到的坑:android actionbar menu菜单无显示。
- LeetCode 2, Add Two Numbers
- 文件过滤<FilenameFilter>
- 2016面试爬坑之我所遇到的面试题(不定时更新,答案仅供参考)
- 软件工程(摘抄)