LeetCode 15 二進制中1的個數

原題

解題思路:

位運算

eor & -eor   ==   eor & (~eor + 1)    取出數中最後一位的操作

class Solution {
public:
    int hammingWeight(uint32_t n) {
       int ret=0;
       while(n)
       {
           n-=(n & -n);//每次減n最後一位1  ,減了多少次。就有多少個1
           ret++;
       } 
       return ret;
    }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章