news 2026/4/16 19:08:58

小红的数组清空【牛客tracker 每日一题】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小红的数组清空【牛客tracker 每日一题】

小红的数组清空

时间限制:1秒 空间限制:256M

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

小红拿到了一个数组,她准备用尽可能少的代价将该数组全部清空。
小红有两种操作:

  1. 直接删除一个元素x xx,花费代价为1 11
  2. 若上一个删除的元素为x xx,那么直接删除一个元素x + 1 x+1x+1,花费代价为0 00。该操作仅当x + 1 x+1x+1在数组中存在时才可进行。

请你求出小红清空整个数组的最小代价。

输入描述:

第一行输入一个正整数n nn,代表数组的大小。
第二行输入n nn个正整数a i a_iai​,用空格隔开。代表数组的元素。
1 ≤ n ≤ 10 5 1≤n≤10^51n105
1 ≤ a i ≤ 10 9 1≤a_i≤10^91ai109

输出描述:

输出一个正整数,代表小红清空整个数组的最小代价。

示例1

输入:

3 1 2 3

输出:

1

说明:

第一次操作,删除1 11,代价为1 11
第二次操作,删除2 22,代价为0 00
第三次操作,删除3 33,代价为0 00

示例2

输入:

5 2 1 6 5 7

输出:

2

示例3

输入:

2 1 1

输出:

2

解题思路

本题采用排序+双端队列贪心策略求解最小清空代价,核心是最大化零代价删除的连续递增序列次数,先将数组排序以按数值递增顺序处理元素,用双端队列维护可衔接的“前驱数值”;遍历每个元素时,先移除队列中小于当前元素− 1 -11的无效前驱(无法衔接),若队列首元素等于当前元素− 1 -11,说明可零代价删除该元素(弹出前驱、将当前元素入队作为新前驱),否则需花费1 11代价删除(当前元素入队、答案加1 11);排序操作时间复杂度为O ( n l o g n ) O( n logn)O(nlogn),遍历及队列操作整体为O ( n ) O(n)O(n),完美适配n ≤ 1 e 5 n≤1e5n1e5的规模,通过贪心选择最优的前驱衔接,最大化零代价操作次数,精准得到清空整个数组的最小代价。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefpair<ll,ll>pii;constll p=1e9+7;constll N=1e6+10;intmain(){ll n;cin>>n;vector<ll>a(n+1);for(ll i=1;i<=n;i++)cin>>a[i];sort(a.begin()+1,a.end());deque<ll>q;ll ans=0;for(ll i=1;i<=n;i++){while(!q.empty()&&q.front()<a[i]-1)q.pop_front();if(!q.empty()&&q.front()==a[i]-1){q.pop_front();q.push_back(a[i]);}else{q.push_back(a[i]);ans++;}}cout<<ans<<endl;return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 16:12:53

48 小时做完并提审:待办事项微信小程序实战(VS Code + Codex 插件)

48 小时做完并提审&#xff1a;待办事项微信小程序实战&#xff08;VS Code Codex 插件&#xff09;很多人用 AI 做小程序&#xff0c;卡在最后一步&#xff1a;提审。 不是因为代码写不出来。 是因为流程顺序错了。 这篇给你一套可执行的路径&#xff1a; 先把“能上架”设计…

作者头像 李华
网站建设 2026/4/16 10:43:07

设计高端网站,要掌握三点制作细节

高端网站设计就仅仅是好看?实际上不然&#xff0c;高端网站在制作的时候&#xff0c;如果仅仅是为了好看&#xff0c;就会丧失一部分网站性能&#xff0c;这就需要在网站外表与网站性能方面做出一定的取舍&#xff0c;针对这类的情况&#xff0c;我们需要如何设计高端网站呢?…

作者头像 李华
网站建设 2026/4/16 13:42:18

为什么第三方支付通道的优势包含代付?

答案很简单 —— 第三方代付能搞定全场景转账需求&#xff0c;还比传统网银更省心&#xff01;不管是公对公、公对私&#xff0c;还是私对公、私对私&#xff0c;它都能支持批量转账&#xff0c;不用财务人员一笔笔手动操作&#xff0c;效率直接翻倍。至于收费&#xff0c;以某…

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

转行网安避坑!合规知识是企业刚需,运维转岗靠它轻松上手

很多运维转行网安时&#xff0c;只关注 “技术攻击与防御”&#xff08;如渗透测试、漏洞挖掘&#xff09;&#xff0c;却忽视了 “合规知识”—— 而合规是企业安全的 “底线要求”&#xff0c;也是网安岗位的 “刚需技能”。随着《网络安全法》《数据安全法》《个人信息保护法…

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

基于springboot架的超市进销存管理系统的设计与实现

目录 摘要关键词 开发技术路线结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 摘要 该系统基于SpringBoot框架开发&#xff0c;结合MySQL数据库&#xff0c;设计并实现了一套完整的超市进销存管理系统。系统采用B/S架构&#xff0c;…

作者头像 李华