news 2026/4/23 0:40:54

小红的数组清空【牛客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/18 3:23:39

智能小区监控系统设计

智能小区监控系统设计与实现 第一章 设计背景与核心目标 传统小区监控系统多以视频录制、人工巡检为主&#xff0c;存在异常识别滞后、预警响应慢、安防设备孤立运行、夜间/恶劣天气监测效果差等问题&#xff0c;难以满足现代小区“全域安防、智能预警、快速处置”的安全管理…

作者头像 李华
网站建设 2026/4/18 3:23:31

2026年维普AIGC检测总失败?这4个降AI指令直接复制用

凌晨三点&#xff0c;维普AIGC第六次显示"疑似AI生成" 这是我上个月经历的真事。论文deadline第二天早上9点&#xff0c;我从晚上8点开始改到凌晨3点&#xff0c;前后查了6次维普AIGC。第一次62.7%&#xff0c;然后依次是58%、54%、51%、48%、47%。越到后面改得越慢…

作者头像 李华
网站建设 2026/4/18 3:33:58

【国家级学会专委会主办】2026年智能检测与运动控制技术国际会议(IDMCT 2026)

2026年国际智能检测与运动控制技术会议将于2026年4月8日至10日在历史文化名城南京隆重召开。本次会议由南京工业大学主办&#xff0c;旨在搭建一个集学术研究、技术交流与产业合作于一体的国际化平台&#xff0c;促进智能检测与运动控制领域的创新发展与应用推广。会议诚邀来自…

作者头像 李华
网站建设 2026/4/17 17:37:43

SpringBoot + ResponseBodyEmitter 实时异步流式推送

目前市面上异步推送大多用的是websocket或者http轮训&#xff0c;今天咱们换一种更为简便的方式来实现流式输出&#xff0c;那就是 ResponseBodyEmitter。 其实&#xff0c;ResponseBodyEmitter 并非新技术&#xff0c;早在 Spring Framework 4.2 版本就已被引入。直到最近&am…

作者头像 李华
网站建设 2026/4/18 3:49:54

基于Spring Boot的网络安全意识教育平台的设计与实现

目录 摘要内容关键技术创新点 开发技术路线结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 摘要内容 基于Spring Boot的网络安全意识教育平台的设计与实现旨在通过现代化技术手段提升用户的网络安全意识&#xff0c;帮助用户识别和防…

作者头像 李华
网站建设 2026/4/19 14:27:33

【Django毕设源码分享】基于Django的粤系菜谱分享平台的设计与实现(程序+文档+代码讲解+一条龙定制)

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

作者头像 李华