leetcode每日一题 2021.3.3
(1)利用x=x&(x-1)每次能够把x的最末尾的一个1变为0的小技巧,分别对每一个数字进行计数。
class Solution {
public:
int count1(int n)
{
int ans=0;
while(n>0)
{
n=n&(n-1);//将最末尾的1个1变为0
ans++;
}
return ans;
}
vector<int> countBits(int num) {
vector<int> ans(num+1);
for(int i=0;i<=num;i++)
{
ans[i]=count1(i);
}
return ans;
}
};
(2)动态规划
以后有时间补充