2024-1-25
文章目录
- [2859. 计算 K 置位下标对应元素的和](https://leetcode.cn/problems/sum-of-values-at-indices-with-k-set-bits/)
- 思路:
2859. 计算 K 置位下标对应元素的和
思路:
遍历输入列表,对于满足特定条件的元素做一些操作并将结果累加起来。其中,bitCount
辅助方法用于计算一个整数的二进制表示中有多少个 1。
- 遍历给定列表
nums
中的所有元素,用索引i
表示当前元素所在位置。 - 对于每个索引
i
,调用辅助方法bitCount(i)
,返回它的二进制表示中 1 的个数。 - 检查步骤 2 中得到的 1 的个数是否等于给定值
k
。 - 如果匹配,则将当前索引
i
所在位置上的值加入到答案ans
中。 - 循环结束后,返回
ans
作为最终结果。
public int sumIndicesWithKSetBits(List<Integer> nums, int k) {
int ans = 0;
for (int i = 0; i < nums.size(); ++i) {
if (bitCount(i) == k) {
ans += nums.get(i);
}
}
return ans;
}
/**
* 计算一个整数的二进制表示中有多少个1
* @param x 要计算的整数
* @return 二进制中1的个数
*/
public int bitCount(int x) {
int cnt = 0;
while (x != 0) {
cnt += (x % 2);
x /= 2;
}
return cnt;
}
点击移步博客主页,欢迎光临~