news 2026/4/16 9:06:19

leetcode 3510

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 3510

3510: 移除最小数对使数组有序Ⅱ

题干同 leetcode 3507

区别:(数据规模增大)

  • 1 <= nums.length <= 50 (3507)
  • -1000 <= nums[i] <= 1000
  • 1 <= nums.length <= 105 (3510)
  • -109 <= nums[i] <= 109

暴力模拟方法仅针对小数据范围,用于本题会超时。

思路:懒删除堆+数组模拟双向链表(详解见leetcode 3507)

class Solution { public: int minimumPairRemoval(vector<int>& nums) { int n=nums.size(); priority_queue<pair<long long,int>,vector<pair<long long,int>>,greater<>> pq; int dec=0; for(int i=0;i<n-1;i++){ int x=nums[i],y=nums[i+1]; if(x>y) dec++; pq.emplace(x+y,i); } vector<int> left(n+1),right(n); ranges::iota(left,-1); ranges::iota(right,1); vector<long long> a(nums.begin(),nums.end()); int ans=0; while(dec){ ans++; while(right[pq.top().second]>=n || pq.top().first!=a[pq.top().second]+a[right[pq.top().second]]){ pq.pop(); } auto[s,i]=pq.top(); pq.pop(); int nxt=right[i]; dec-=a[i]>a[nxt]; int pre=left[i]; if(pre>=0){ dec-=a[pre]>a[i]; dec+=a[pre]>s; pq.emplace(a[pre]+s,pre); } int nxt2=right[nxt]; if(nxt2<n){ dec-=a[nxt]>a[nxt2]; dec+=s>a[nxt2]; pq.emplace(s+a[nxt2],i); } a[i]=s; int l=left[nxt],r=right[nxt]; right[l]=r; left[r]=l; right[nxt]=n; } return ans; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 14:21:32

吐血推荐9个一键生成论文工具,自考本科毕业论文轻松搞定!

吐血推荐9个一键生成论文工具&#xff0c;自考本科毕业论文轻松搞定&#xff01; 自考论文写作的“救星”来了 在自考本科的道路上&#xff0c;毕业论文无疑是一道难以逾越的难关。很多学生在选题、构思、撰写、修改等环节中感到无从下手&#xff0c;尤其是面对高重复率和严格…

作者头像 李华
网站建设 2026/4/16 14:17:08

服装加工ERP系统是什么?它能为企业带来哪些效率提升?

服装加工ERP系统如何提升企业整体运营效率 服装加工ERP系统能够通过多种方式提升企业整体运营效率。首先&#xff0c;系统能够有效地整合信息流、物流和资金流&#xff0c;减少信息孤岛。这意味着各个部门可以顺畅沟通&#xff0c;减少重复劳动。同时&#xff0c;艾格文服装ERP…

作者头像 李华
网站建设 2026/4/16 12:41:41

Java毕设选题推荐:基于springboot的猫咖宠物咖啡平台管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华