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

server/2025/1/18 9:42:24/

在本篇文章中,我们将探讨如何求解 LeetCode 上的 2859. 计算 K 置位下标对应元素的和问题。这个问题要求我们找到一个数组中特定元素的和,这些特定元素的下标在二进制表示中恰好有 k 个置位。

问题描述

 

算法分析

为了解决这个问题,我们可以采用以下步骤:

  1. 计算置位数量:对于每个下标,计算其二进制表示中 1 的个数。

  2. 检查条件:如果置位数量等于 k,则将对应元素加到总和中。

代码实现

以下是使用 C++ 实现的代码:

#include <vector>class Solution {
public:int sumIndicesWithKSetBits(std::vector<int>& nums, int k) {int n = nums.size();int sum = 0;// 遍历数组numsfor (int i = 0; i < n; i++) {// 计算当前下标的二进制表示中1的个数int count = 0;int temp = i;while (temp > 0) {count += temp & 1;temp >>= 1;}// 如果1的个数等于k,则将对应元素加到sum中if (count == k) {sum += nums[i];}}return sum;}
};

复杂度分析

  • 时间复杂度:O(n * m),其中 n 是数组 nums 的长度,m 是计算每个下标二进制表示中 1 的个数所需的时间。在最坏情况下,m 可以接近于 log2(n)。

  • 空间复杂度:O(1),我们只需要常数额外空间。

结论

通过计算每个下标的二进制表示中 1 的个数,并检查是否等于 k,我们可以找到满足条件的元素并计算它们的和。这种方法简单且有效,适用于处理大规模数据。

 


http://www.ppmy.cn/server/159321.html

相关文章

软件测试 —— 自动化测试(Selenium)

软件测试 —— 自动化测试&#xff08;Selenium&#xff09; 什么是SeleniumPython安装Selenium1.安装webdirver-manager2.安装Selenium 写一个简单用例CSS_SELECTOR和XPATH浏览器快速定位页面元素浏览器的前进&#xff08;forward&#xff09;&#xff0c;后退&#xff08;bac…

父组件数据更新后通过属性传递给子组件,子组件页面未更新问题记录

改老项目bug时&#xff0c;发现父组件数据更新后通过属性传递给子组件&#xff0c;子组件页面未更新&#xff1b;查看代码原来是使用shallowRef定义的属性导致的&#xff1b;这里记录一下 子组件如下 <template> <ul><li v-for"b in filterList" :k…

学成在线_内容管理模块_创建模块工程

学成在线模块工程 1.各个微服务依赖基础工程2.每个微服务都是一个前后端分离的项目3.xuecheng-plus-content&#xff1a;内容管理模块工程xuecheng-plus-content-modelxuecheng-plus-content-servicexuecheng-plus-content-api 1.各个微服务依赖基础工程 2.每个微服务都是一个前…

Openstack持久存储-Swift,Cinder,Manila三者之间的区别

总结不易&#xff0c;给个三连吧&#xff01;&#xff01;&#xff01; 补充&#xff1a; 文件共享存储服务Manila 在OpenStack生态系统中&#xff0c;Cinder和Manila分别提供了两种不同类型的存储服务&#xff0c;类似于传统的SAN&#xff08;存储区域网络&#xff09;和NAS&…

数据结构(堆)

一.概念及其介绍 1.堆(Heap)是计算机科学中一类特殊的数据结构的统称。 堆就是以二叉树的顺序存储方式来存储元素&#xff0c;同时又要满足父亲结点存储数据都要大于等于儿子结点存储数据&#xff08;也可以是父亲结点数据都要小于等于儿子结点数据&#xff09;的一种数据结构…

从零深度学习:(2)最小二乘法

今天我们从比较简单的线性回归开始讲起&#xff0c;还是一样我们先导入包 import numpy as np import torch import matplotlib as mpl import matplotlib.pyplot as plt a torch.arange(1,5).reshape(2,2).float() a 我们利用刚刚导入的画图的包将这两个点画出来&#xff0…

数据结构-栈队列OJ题

文章目录 一、有效的括号二、用队列实现栈三、用栈实现队列四、设计循环队列 一、有效的括号 (链接&#xff1a;ValidParentheses) 这道题用栈这种数据结构解决最好&#xff0c;因为栈有后进先出的性质。简单分析一下这道题&#xff1a;所给字符串不是空的也就是一定至少存在一…

C# 线程基础之 线程同步

线程同步的手段很多 lock 是通过内存索引块 0 1 切换 进行互斥的实现 互斥量 信号量 事件消息 其实意思就是 一个 标记量 通过这个标记 来进行类似的互斥手段 具体方式的分析 代码在后 1.互斥量 Mutex 作用 非常类似lock 一个Mutex 名称来代替 lock的引用对象 2.信号量 Semaph…