Leetcode: Number of 1 Bits
2015-07-28 23:30
423 查看
Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the
Hamming weight).
For example, the 32-bit integer ’11' has binary representation
简单直观的解法。
优化一下:
继续:
class Solution {
public:
int hammingWeight(uint32_t n) {
int result = 0;
while (n != 0) {
n &= n - 1;
++result;
}
return result;
}
};
Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the
Hamming weight).
For example, the 32-bit integer ’11' has binary representation
00000000000000000000000000001011, so the function should return 3
简单直观的解法。
class Solution { public: int hammingWeight(uint32_t n) { int result = 0; for (int i = 0; i < 32; ++i) { if (n & 0x1) { ++result; } n >>= 1; } return result; } };
优化一下:
class Solution { public: int hammingWeight(uint32_t n) { int result = 0; while (n != 0) { result += n & 0x1; n >>= 1; } return result; } };
继续:
class Solution {
public:
int hammingWeight(uint32_t n) {
int result = 0;
while (n != 0) {
n &= n - 1;
++result;
}
return result;
}
};
相关文章推荐
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum
- [LeetCode] Find the k-th Smallest Element in the Union of Two Sorted Arrays
- [LeetCode] Determine If Two Rectangles Overlap
- [LeetCode] A Distance Maximizing Problem
- leetcode_linearList
- leetcode_linearList02
- LeetCode[Day 1] Two Sum 题解
- LeetCode[Day 2] Median of Two Sorted Arrays 题解
- LeetCode[Day 3] Longest Substring Without... 题解
- LeetCode [Day 4] Add Two Numbers 题解
- LeetCode [Day 5] Longest Palindromic Substring 题解
- LeetCode [Day 6] ZigZag Conversion 题解