leetcode 191
2015-03-31 16:36
369 查看
输出一个无符号整型数的二进制"1"的个数.如3的话为11,所以答案是2. 解法1:
int hammingWeight(uint32_t n) { int nums = 0; while(n) { nums += n%2; n = n / 2; } return nums; }
十进制转二进制这个过程计算个数,最常用的思维。 解法2:
int hammingWeight(uint32_t n) { int nums = 0; while(n) { n = n & (n-1); nums++; } return nums; }
n&(n-1)相当于将n二进制最后一1给去掉,所以当n为0的时候nums记录的就是1的个数.因为与的操作时间非常的短,所以解法2的效率要高.
相关文章推荐
- leetcode——191——Number of 1 Bits
- LeetCode 461 191 477
- leetcode 191 Number of 1 Bits(位运算)
- 判断一个整数中有多少个1(二进制)--LeetCode 191
- leetCode #191 number of 1 bits
- 剑指Offer面试题10 & Leetcode191
- LeetCode(191) Number of 1 Bits
- LeetCode 191: Number of 1 Bits
- LeetCode-191 Number of 1 Bits
- [Leetcode] #191 Number of 1 Bits
- LeetCode 191 number of 1 bits
- leetcode 191 Number of 1 Bits C++
- LeetCode 191:Number of 1 Bits
- LeetCode 191 Number of 1 Bits (位运算)
- 【LeetCode】190 & 191 - Reverse Bits & Number of 1 Bits
- Leetcode191: Bulls and Cows
- leetcode:bits:Number of 1 Bits(191)
- LeetCode191:Number of 1 Bits【Java】
- Leetcode 题目记录:231,342,191, 190,172,258,292
- LeetCode 191----Number of 1 Bits