news 2026/3/28 7:31:10

小红的数组清空【牛客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/3/16 3:10:13

智能温度变送器仿真与设计实现

智能温度变送器仿真与设计实现 第一章 设计背景与核心目标 传统模拟温度变送器存在测量精度低&#xff08;误差≥1%&#xff09;、温漂明显、抗干扰能力弱、输出信号单一等问题&#xff0c;难以满足工业现场&#xff08;如化工、电力、冶金&#xff09;对温度监测“高精度、高稳…

作者头像 李华
网站建设 2026/3/16 3:10:13

智能停车场管理系统设计

智能停车场管理系统设计与实现 第一章 设计背景与核心目标 传统停车场管理依赖人工登记、刷卡缴费、人工寻位&#xff0c;存在入场效率低&#xff08;平均通行时间≥30s/车&#xff09;、车位利用率低&#xff08;≤70%&#xff09;、缴费流程繁琐、数据统计滞后等问题&#xf…

作者头像 李华
网站建设 2026/3/15 21:55:00

透过Redis源码探究Hash表的实现!

概述# 我们在学习 Redis 的 Hash 表的时候难免脑子里会想起其他 Hash 表的实现&#xff0c;然后进行一番对比。通常我们如果要设计一个 Hash 表&#xff0c;那么我们需要考虑这几个问题&#xff1a; 有没有并发操作&#xff1b;Hash冲突如何解决&#xff1b;以什么样的方式扩…

作者头像 李华
网站建设 2026/3/28 2:57:47

架构师社区疯传:SpringSecurity进阶小册真香!

安全管理是Java应用开发中无法避免的问题&#xff0c;随着Spring Boot和微服务的流行&#xff0c;Spring Security受到越来越多Java开发者的重视&#xff0c;究其原因,还是沾了微服务的光。作为Spring家族中的一员,其在和Spring家族中的其他产品如SpringBoot、Spring Cloud等进…

作者头像 李华
网站建设 2026/3/15 21:54:58

酷秒神马9.0 2026版:源码系统核心技术升级解析

各位技术爱好者&#xff0c;分享酷秒神马9.0版2026最新源码系统&#xff0c;聚焦架构优化与播放流畅度提升&#xff0c;技术通俗易懂&#xff0c;适配智能电视、机顶盒等多终端&#xff0c;部署便捷且实用性拉满。 采用微服务模块化架构&#xff0c;将核心功能拆分封装&#x…

作者头像 李华