leetcode-191- Number of 1 Bits
2017-01-13 11:15
435 查看
问题
题目:[leetcode-191]思路
比较简单,移位操作。转化为位向量去做。代码
class Solution { public: int hammingWeight(uint32_t n) { int ans = 0; while( n ){ if( n&1 ) ++ans; n >>= 1; } return ans; } };
当然,这个题还有更妙的答案。
思路
n&(n-1)的妙用代码
/* n&n-1的妙用。 n与n-1的区别在于,对于n,最低位1开始一直到右,和n-1,完全相反 n = 10-100 n-1 = 10-011 因此,n&n-1可以把n的最低位1变成0 */ class Solution { public: int hammingWeight(uint32_t n) { int cnt = 0; while( n ) { ++cnt; n &= n-1; } return cnt; } };
相关文章推荐
- 【LeetCode】191_Number of 1 Bits
- LeetCode 191 number of 1 bits
- [Leetcode 191, Easy] 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
- LeetCode191 Number of 1 Bits
- leetcode191[easy]---Number of 1 Bits
- leetcode 191 Number of 1 Bits(位运算)
- LeetCode191:Number of 1 Bits【Java】
- [LeetCode]: 191:Number of 1 Bits
- [LeetCode-191] Number of 1 Bits(判断一个整数中有多少个1)
- LeetCode 191----Number of 1 Bits
- LeetCode #191 Number of 1 Bits
- Leetcode 191 Number of 1 Bits 位运算
- LeetCode 191 Number of 1 Bits
- Java [Leetcode 191]Number of 1 Bits
- LeetCode 191 Number of 1 Bits
- LeetCode之191 Number of 1 Bits 别名:数1