程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> (LeetCode OJ) Number of 1 Bits【191】

(LeetCode OJ) Number of 1 Bits【191】

編輯:C++入門知識

(LeetCode OJ) Number of 1 Bits【191】


191. Number of 1 Bits

Total Accepted: 65438 Total Submissions: 172909 Difficulty: Easy

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.

Credits:
Special thanks to @ts for adding this problem and creating all test cases.

Subscribe to see which companies asked this question

Hide Tags Bit Manipulation Hide Similar Problems (E) Reverse Bits (E) Power of Two
//思路理清楚:首先這個數是正整數,題目說的很清楚
//一定情況:那麼只要這個數不為0,他就有1
//每次循環減少一個二進制最左邊的1  ---》n=n&n-1
//比如有5個1,則循環5次(減少5次)
class Solution {
public:
    int hammingWeight(uint32_t n) {
        int cnt=0;
        
        while(n)
        {
            cnt++;
            n=n&n-1;//減少一個二進制中最左邊的1
        }
        return cnt;
    }
};

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved