当前位置: 首页 > news >正文

两个有序集合

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;
}
};

http://www.jsqmd.com/news/285379/

相关文章:

  • ArcGIS大师之路500技---064通过字段计算器获得要素几何属性
  • 告别听歌枷锁 R3PLAY + cpolar 实现真正的听歌自由
  • ArcGIS大师之路500技---065shp文件形状数与表记录数不一致的修复方法
  • rust语言lint工具
  • 揭秘!2026 年谷歌独立站建设优化外贸营销推广公司 TOP3(权威评测)
  • 情感分析不再难:AI原生应用开发全指南
  • 揭秘!2026 年谷歌独立站建设优化外贸推广公司 TOP3(权威评测)
  • 【信创-k8s】麒麟V11使用containerd2.1.5全离线安装k8s1.32.11+KubeSphere - 天行1st
  • Spring AI学习:配置redis向量数据库RAG实践
  • edu115 EF
  • 呼伦贝尔融媒体数据库国产化替换成功案例:筑牢宣传阵地安全底座,金仓KES助力云雀系统高效运转
  • Linux Shell source 命令全解析:基础、进阶、高级用法与历史背景(完整版)
  • CS5801+AS721方案 HDMI转DP双向互转方案
  • 金仓数据库WDS9200水调系统落地案例:筑牢水电数据安全底座,助力大顶子山电站高效调度
  • 揭秘!2026 年谷歌独立站建设优化推广公司 TOP3(权威评测)
  • 泉州市公安局KES国产化替换实战案例:筑牢公安数据安全底座,赋能实战效能跃升
  • 《构建之法》阅读笔记(个人开发与技术基础)
  • 金仓数据库落地绵九高速收费系统案例:筑牢数据安全底座,赋能智慧高速运营
  • 2026必备!MBA毕业论文写作神器TOP8测评
  • 深度测评9个AI论文网站,继续教育学生轻松搞定毕业论文!
  • Cypress-CYT4B-Mcal配置说明(十)Mcu模块配置
  • 广州医科大学附属肿瘤医院HIS系统国产化替换成功案例
  • 基于大数据+爬虫的二手车数据分析与可视化平台开题报告
  • 2026年碳纤维加固厂家推荐:植筋加固、柱包钢加固、房屋加固、地基加固、隧道加固厂家推荐
  • LIME模型解释实战
  • 机器学习催化剂设计!
  • 碳排放能源管理系统:企业绿色转型的数字化引擎
  • 【k8s】Centos从零开始使用containerd部署k8s1.30.14+KubeSphere - 天行1st
  • 国药智慧飞鱼系统国产化替换成功案例:筑牢央企数据安全底座,打造信创标杆
  • 题解:AT_arc177_f [ARC177F] Two Airlines