news 2026/6/15 18:33:32

两个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/15 14:39:39

深入浅出Java的并发集合容器

Java 的并发集合容器提供了在多线程环境中高效访问和操作的数据结构。这些容器通过内部的同步机制实现了线程安全&#xff0c;使得开发者无需显式同步代码就能在并发环境下安全使用&#xff0c;比如说&#xff1a;ConcurrentHashMap、阻塞队列和 CopyOnWrite 容器等。java.util…

作者头像 李华
网站建设 2026/6/15 14:19:18

SpringBoot大文件(百M以上)上传如何实现切片上传?

政府招投标项目大文件传输解决方案设计与实现 项目背景与需求分析 作为本次政府招投标项目的开发负责人&#xff0c;我负责解决100G级大文件传输的技术难题。项目要求支持包括IE8在内的所有主流浏览器&#xff0c;同时必须适配信创国产化环境&#xff08;统信UOS、中标麒麟、…

作者头像 李华
网站建设 2026/6/15 14:56:37

【20天学C++】Day 17: C++11新特性

【20天学C】Day 17: C11新特性 &#x1f4c5; 学习时间&#xff1a;4-5小时 &#x1f3af; 学习目标&#xff1a;掌握C11重要新特性 &#x1f4a1; 难度&#xff1a;★★★★☆ 1. auto类型推导 #include <iostream> #include <vector> #include <map> usin…

作者头像 李华
网站建设 2026/6/15 13:56:47

『NAS』告别付费和广告,在群晖部署PDF工具箱-bentopdf

点赞 关注 收藏 学会了 整理了一个NAS小专栏&#xff0c;有兴趣的工友可以关注一下 &#x1f449; 《NAS邪修》 BentoPDF 是一款隐私优先、纯浏览器端运行的 PDF 全能工具箱&#xff0c;可通过 Docker 轻松部署到 NAS。提供数十种处理 PDF 功能&#xff0c;所有文件处理均在…

作者头像 李华
网站建设 2026/6/14 22:45:08

基于深度学习YOLOv11的护目镜佩戴识别检测系统(YOLOv11+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)

一、项目介绍 本文设计并实现了一种基于深度学习YOLOv11的护目镜佩戴识别检测系统&#xff0c;旨在通过计算机视觉技术自动检测人员是否规范佩戴护目镜。系统采用YOLOv11目标检测算法&#xff0c;结合包含15,083张图像的自定义数据集&#xff08;训练集13,200张、验证集1,256张…

作者头像 李华