news 2026/5/1 1:08:07

小红的数组清空【牛客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/25 6:08:06

2026年数智组织与管理国际学术会议 (ICDIOM 2026)

2026年数智组织与管理国际学术会议 (ICDIOM 2026)将于2026年4月10-12日在中国武汉隆重举行。 AI 原生浪潮下&#xff0c;组织管理正从模块化效率提升迈向全链路智能协同&#xff0c;人机协同、智能体网络成为变革核心。本次会议将紧密聚焦当前管理学科领域的热点与难点问题&a…

作者头像 李华
网站建设 2026/4/30 16:49:57

解决Abaqus分析不收敛问题的10个实用方法

对于每一位有限元分析工程师而言&#xff0c;Abaqus分析过程中弹出的“Too many attempts made for this increment”警告&#xff0c;无疑是最令人沮丧的时刻之一。模型的abaqus不收敛问题&#xff0c;不仅消耗了宝贵的计算资源&#xff0c;更严重拖慢了项目进度。导致abaqus分…

作者头像 李华
网站建设 2026/4/22 22:02:39

python协同过滤算法的鲜花商城销售管理系统vue

目录 协同过滤算法在鲜花商城销售管理系统中的应用核心算法实现Python 实现示例Vue 前端集成系统优势 开发技术路线结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 协同过滤算法在鲜花商城销售管理系统中的应用 协同过滤算法是一种基…

作者头像 李华
网站建设 2026/4/20 0:32:37

python基于内容推荐算法的校园人才招聘系统

目录系统概述核心功能技术实现优势与创新应用场景开发技术路线结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;系统概述 基于内容推荐算法的校园人才招聘系统旨在通过分析学生简历和岗位需求的匹配度&#xff0c;实现精准推荐。系统利…

作者头像 李华
网站建设 2026/4/15 20:31:55

【Django毕设源码分享】基于Python的人脸识别打卡系统的设计与实现(程序+文档+代码讲解+一条龙定制)

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

作者头像 李华