【LeetCode每日一题】2859. 计算 K 置位下标对应元素的和

2024-1-25

文章目录

      • [2859. 计算 K 置位下标对应元素的和](https://leetcode.cn/problems/sum-of-values-at-indices-with-k-set-bits/)
          • 思路:

2859. 计算 K 置位下标对应元素的和

【LeetCode每日一题】2859. 计算 K 置位下标对应元素的和_第1张图片

思路:

遍历输入列表,对于满足特定条件的元素做一些操作并将结果累加起来。其中,bitCount 辅助方法用于计算一个整数的二进制表示中有多少个 1。

  1. 遍历给定列表 nums 中的所有元素,用索引 i 表示当前元素所在位置。
  2. 对于每个索引 i,调用辅助方法 bitCount(i),返回它的二进制表示中 1 的个数。
  3. 检查步骤 2 中得到的 1 的个数是否等于给定值 k
  4. 如果匹配,则将当前索引 i 所在位置上的值加入到答案 ans 中。
  5. 循环结束后,返回 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;
}

点击移步博客主页,欢迎光临~

偷cyk的图

你可能感兴趣的:(LeetCode,leetcode,算法,职场和发展)