Leetcode 3478. Choose K Elements With Maximum Sum

devtools/2025/3/11 5:41:53/
  • Leetcode 3478. Choose K Elements With Maximum Sum
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3478. Choose K Elements With Maximum Sum

1. 解题思路

这一题思路上就是一个有序数组,我们首先将数组1有序排列,然后依次考察其每一个位置上的元素,此时就可以保证每一个位置上的元素被考察时,此前数组2当中对应位置的元素都是可用的,我们只需要取出topk个元素进行求和就行了。

当然,由于只需要考虑topk,因此事实上我们只需要维护最大的topk个元素及其对应的和的值即可。

2. 代码实现

给出python代码实现如下:

class Solution:def findMaxSum(self, nums1: List[int], nums2: List[int], k: int) -> List[int]:n = len(nums1)ans = [0 for _ in range(n)]ordered_nums1 = sorted([(x, i) for i, x in enumerate(nums1)])pre_max, topk_sum = 0, 0cache, topk_elems = [], []for num, idx in ordered_nums1:if num > pre_max:for candidate in cache:if len(topk_elems) < k:bisect.insort(topk_elems, candidate)topk_sum += candidateelif topk_elems[0] < candidate:bisect.insort(topk_elems, candidate)topk_sum += candidate - topk_elems[0]topk_elems.pop(0)cache = []pre_max = numans[idx] = topk_sumcache.append(nums2[idx])return ans

提交代码评测得到:耗时1165ms,占用内存48.3MB。


http://www.ppmy.cn/devtools/166197.html

相关文章

【五.LangChain技术与应用】【9.LangChain ChatPromptTemplate(上):高级对话模板设计】

LangChain ChatPromptTemplate完全攻略(上):让AI对话拥有导演思维 (全文约6000字,实战代码占比40%,建议搭配Jupyter Notebook阅读) 凌晨三点的办公室,你盯着刚写完的客服对话系统,AI回复总是把"我要投诉!“处理成"我要投喂~”。同事小李凑过来瞥了一眼代…

一文讲懂Go语言如何使用配置文件连接数据库

一文讲懂Go语言如何使用配置文件连接数据库 viper1. viper简介2. viper 读取.toml配置文件定义Go语言结构体编写与Go语言结构体对应的.toml配置文件定义初始化函数定义get函数 连接数据库1. 定义数据库对象2. 定义初始化函数3. 定义 get 函数4. 定义 main 函数, 连接数据库 配置…

JAVA通过SSE实现消息推送

JAVA通过SSE实现消息推送 1.什么是SSE&#xff1f;2.SSE技术的基本原理3.SSE和Socket的区别4.编写SSE服务&#xff0c;来进行创建链接和发送消息5.前端实现消息监听 1.什么是SSE&#xff1f; SSE&#xff08;Server-Sent Events&#xff09;是一种用于实现服务器主动向客户端推…

蓝桥杯 字符串拼接【省模拟赛】

问题描述 给定四个字符串 a,b,c,da,b,c,d&#xff0c;请将这四个字符串按照任意顺序依次连接拼成一个字符串。 请问拼成的字符串字典序最小是多少&#xff1f; 输入格式 输入四行&#xff0c;每行包含一个字符串。 输出格式 输出一行包含一个字符串&#xff0c;表示答案。 样例…

React基础之组件

在React中一个组件就是首字母大写的函数&#xff0c;内部存放了组件的逻辑和视图UI&#xff0c;渲染组件只需要把组件当作标签书写即可 //定义组件 // function Button(){ // return <button>click me&#xff01;</button> // } //也可以使用箭头函数来定义 co…

Gazebo不报错但是没有机器人模型

现象是&#xff0c;gazebo能打开&#xff0c;有世界模型&#xff0c;但是没有机器人模型&#xff1b;排查过不是模型文件的问题&#xff0c;因为啥模型都有这样的现象。 这种情况可以参考以下解决办法&#xff1a; &#xff08;1&#xff09;看看catkin_ws中有没有gazebo_ros…

【AI】AI开源IDE:CLine源码分析报告

1. 源码位置&#xff1a; CLine 是一个开源的 VSCode 插件&#xff0c;其完整源码托管在 GitHub 的 cline/cline 仓库中。这个仓库包含 CLine 的核心逻辑&#xff08;TypeScript 编写&#xff09;&#xff0c;包括与 LLM 的对话控制、工具调用接口&#xff0c;以及 VSCode 插件…

Android 检查更新

首先服务类 public class UpdateService extends Service {private static final String NOTIFY_CHANNEL_ID "com.jianke.api.UpdateService";public static final String BROADCAST_UPDATE_VERSION_AUTH_INSTALL_APK "BROADCAST_UPDATE_VERSION_AUTH_INSTAL…