338比特位技术

题目链接:

https://leetcode.cn/problems/counting-bits/

338比特位技术_第1张图片

这个题也是让我们找到每个1的个数,也是和上一题找到二进制位1的个数思路大体类似,让n和1去&,每次&之后判断是否为1,然后让n>>1,就这样我们判断32次,每次判断后的结果存入vecotr即可。

代码如下:

class Solution {
public:
    vector countBits(int n) {
        vectorans;
        for(int i=0;i<=n;i++)
        {
            int a=i;
            int count=0;
            for(int j=0;j<32;j++)
            {
               if((a&1)==1)
                {
                    count++;
                }
                a=a>>1;
            }
            ans.push_back(count);
        }
        return ans;
    }
};

你可能感兴趣的:(算法,算法,leetcode,数据结构)