news 2026/5/3 15:03:27

两个有序集合

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
两个有序集合

lc3510

两个有序集合

贪心策略,每次移除和最小的递减相邻数对并将两数合并,持续消除所有递减相邻对

统计移除操作次数即为最少移除对数,实现数组非递减的最小相邻数对移除求解

class Solution {
public:
int minimumPairRemoval(vector<int>& nums) {
int n = nums.size();
set<pair<long long, int>> pairs; // (相邻元素和,左边那个数的下标)
int dec = 0; // 递减的相邻对的个数
for (int i = 0; i + 1 < n; i++) {
int x = nums[i], y = nums[i + 1];
if (x > y) {
dec++;
}
pairs.emplace(x + y, i);
}

set<int> idx; // 剩余下标
for (int i = 0; i < n; i++) {
idx.insert(i);
}

vector<long long> a(nums.begin(), nums.end());
int ans = 0;
while (dec > 0) {
ans++;

// 删除相邻元素和最小的一对
auto [s, i] = *pairs.begin();
pairs.erase(pairs.begin());

auto it = idx.lower_bound(i);

// (当前元素,下一个数)
auto nxt_it = next(it);
int nxt = *nxt_it;
dec -= a[i] > a[nxt]; // 旧数据

// (前一个数,当前元素)
if (it != idx.begin()) {
int pre = *prev(it);
dec -= a[pre] > a[i]; // 旧数据
dec += a[pre] > s; // 新数据
pairs.erase({a[pre] + a[i], pre});
pairs.emplace(a[pre] + s, pre);
}

// (下一个数,下下一个数)
auto nxt2_it = next(nxt_it);
if (nxt2_it != idx.end()) {
int nxt2 = *nxt2_it;
dec -= a[nxt] > a[nxt2]; // 旧数据
dec += s > a[nxt2]; // 新数据(当前元素,下下一个数)
pairs.erase({a[nxt] + a[nxt2], nxt});
pairs.emplace(s + a[nxt2], i);
}

a[i] = s; // 把 a[nxt] 加到 a[i] 中
idx.erase(nxt); // 删除 nxt
}
return ans;
}
};

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

InfiniFlow

InfiniFlow 是一家专注于人工智能领域的科技公司&#xff0c;其核心产品围绕 AI 原生数据库和检索增强生成&#xff08;RAG&#xff09;技术构建&#xff0c;旨在为大型语言模型&#xff08;LLM&#xff09;应用提供高效的数据检索与处理能力。- 公司概况&#xff1a;InfiniFlo…

作者头像 李华
网站建设 2026/5/3 5:48:49

微信小程序构建的三种主流途径及其适用场景解析

鉴于移动互联网不断步入深入发展阶段&#xff0c;微信小程序已然变成连接线上以及线下服务的关键载体。针对众多企业还有商户来讲&#xff0c;有一个功能完备、体验顺畅的小程序&#xff0c;并非是锦上添花之事&#xff0c;而是经营期间的标配。可是呢&#xff0c;面对技术门槛…

作者头像 李华
网站建设 2026/4/28 21:51:21

基于Java+SpringBoot+SSM土地资源管理子系统(源码+LW+调试文档+讲解等)/土地资源管理系统/资源管理子系统/土地管理系统/土地资源信息化管理子系统/土地资源规划子系统

博主介绍 &#x1f497;博主介绍&#xff1a;✌全栈领域优质创作者&#xff0c;专注于Java、小程序、Python技术领域和计算机毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅&#x1f447;&#x1f3fb; 2025-2026年最新1000个热门Java毕业设计选题…

作者头像 李华
网站建设 2026/5/1 21:00:41

PPT转PDF,排版总乱?告别错乱,这三招就够了!

你是否也遇到过这样的窘境&#xff1a;精心制作了一整夜的PPT&#xff0c;包含了酷炫的字体、精美的图表和完美的对齐&#xff0c;结果发给别人或者换台电脑打开时&#xff0c;排版瞬间“山崩地裂”——字体变成宋体&#xff0c;图片位置漂移&#xff0c;整个页面惨不忍睹。 为…

作者头像 李华
网站建设 2026/5/2 4:37:26

NopCommerce 4.9.3全栈开发实战 - 5.4 前端资源管理(CSS_JS)

1. 资源管理概述 NopCommerce的前端资源管理涉及CSS样式表、JavaScript脚本、图片、字体等静态资源的组织、加载和优化。良好的资源管理对于提高网站性能、改善用户体验至关重要&#xff09; 1.1 核心原则 *模块化组件&#xff1a;将资源按照功能或组件进行模块化组织性能优化&…

作者头像 李华