news 2026/6/10 12:30:09

两个set维护k-1小|对顶堆-懒删除

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
两个set维护k-1小|对顶堆-懒删除

lc3013

两个set维护k-1小

对顶堆-懒删除 数据流中的中位数

class Solution {
public:
long long minimumCost(vector<int>& nums, int k, int dist) {
k--;
long long sum = reduce(nums.begin(), nums.begin() + dist + 2, 0LL);
multiset<int> L(nums.begin() + 1, nums.begin() + dist + 2), R;
auto L2R = [&]() {
int x = *L.rbegin();
sum -= x;
L.erase(L.find(x));
R.insert(x);
};
auto R2L = [&]() {
int x = *R.begin();
sum += x;
R.erase(R.find(x));
L.insert(x);
};
while (L.size() > k) {
L2R();
}

long long ans = sum;
for (int i = dist + 2; i < nums.size(); i++) {
// 移除 out
int out = nums[i - dist - 1];
auto it = L.find(out);
if (it != L.end()) {
sum -= out;
L.erase(it);
} else {
R.erase(R.find(out));
}

// 添加 in
int in = nums[i];
if (in < *L.rbegin()) {
sum += in;
L.insert(in);
} else {
R.insert(in);
}

// 维护大小
if (L.size() == k - 1) {
R2L();
} else if (L.size() == k + 1) {
L2R();
}

ans = min(ans, sum);
}
return ans;
}
};

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:49:30

程序员必看:大语言模型与知识图谱融合技术路线图(建议收藏)

大语言模型与知识图谱融合是AI领域前沿研究方向&#xff0c;二者优势互补。LLM拥有强大语言能力但存在幻觉问题&#xff0c;KG具备结构化知识但构建成本高。融合路线图包括三大框架&#xff1a;KG增强LLM(如RAG)、LLM增强KG(自动化构建)和协同进化系统。未来趋势是从数据驱动向…

作者头像 李华
网站建设 2026/6/10 11:43:29

基于大数据的新闻分析推荐系统[python]-计算机毕业设计源码+LW文档

摘要&#xff1a;随着互联网技术的飞速发展&#xff0c;新闻数据呈爆炸式增长。如何从海量的新闻数据中提取有价值的信息&#xff0c;并为用户提供个性化的新闻推荐成为当前研究的热点。本文设计并实现了一个基于大数据的新闻分析推荐系统&#xff0c;该系统利用大数据技术进行…

作者头像 李华
网站建设 2026/6/10 11:36:29

PHP 汉字转拼音扩展包:overtrue/pinyin 全面指南

一、前置准备&#xff1a;安装overtrue/pinyin 是 PHP 生态中非常流行的汉字转拼音扩展包&#xff0c;支持多种拼音格式、多音字处理、简繁转换等功能。使用前需先安装。安装方式&#xff1a;# Composer 安装&#xff08;推荐&#xff09; composer require overtrue/pinyin安装…

作者头像 李华