力扣每日一题;题序:2859
对于每一个位置i都去计算i对应的二进制数中1的个数
时间复杂度:O( n log n u m n\log num nlognum)。 log n u m \log num lognum表示求二进制数中1的个数所需的时间
空间复杂度:O(1)
public int sumIndicesWithKSetBits(List<Integer> nums, int k) {
int n=nums.size();
int res=0;
for(int i=0;i<n;i++){
if(countOnes(i)==k)
res+=nums.get(i);
}
return res;
}
public int countOnes(int n){
int res=0;
while(n>0){
res+=(n&1)==1?1:0;
n=n>>1;
}
return res;
}
官方题解
这个没看懂,大家自己去看官方题解吧
有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈~