338比特位技术
题目链接:
https://leetcode.cn/problems/counting-bits/
这个题也是让我们找到每个1的个数,也是和上一题找到二进制位1的个数思路大体类似,让n和1去&,每次&之后判断是否为1,然后让n>>1,就这样我们判断32次,每次判断后的结果存入vecotr即可。
代码如下:
class Solution {
public:vector<int> countBits(int n) {vector<int>ans;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;}
};