这一题本质上就是让你自己数数组下标的二进制数中1的个数,所以,只要会二进制的转换就可以了,然后用一个数组来存储1,这里作者用一个vector<int>的容器来储存1,最后其容器的容量就是1的个数。
上代码:
class Solution {
public:
int sumIndicesWithKSetBits(vector<int>& nums, int k) {
int n=nums.size();
int i,j;
int count=0;
vector<int>index;
int sum=0;
for(i=0;i<n;i++){
index.clear();
int num=i;
while(num){
int t;
t=num%2;
num/=2;
if(t==1)
index.push_back(t);
}
if(index.size()==k)
sum+=nums[i];
}
return sum;
}
};