当前位置: 首页 > article >正文

AcWing 4306:序列处理 ← 贪心算法

【题目来源】
https://www.acwing.com/problem/content/4309/

【题目描述】
给定一个长度为 n 的整数序列 a1,a2,…,an。
我们可以对该序列进行修改操作,每次操作选中其中一个元素,并使其
增加 1
现在,请你计算要使得序列中的元素各不相同,
至少需要进行多少次操作。

【输入格式】
第一行包含整数 n。
第二行包含 n 个整数 a1,a2,…,an。

【输出格式】
一个整数,表示所需的最少操作次数。

【输入样例1】
4
1 3 1 4

【输出样例1】
1

【输入样例2】
5
1 2 3 2 5

【输出样例2】
2

【算法分析】
基于
贪心思想,首先对数组元素进行排序,然后判定后一个数是否大于前一个数。
若为否,则后一个数不断加 1 并对操作次数进行计数。

【算法代码】

#include <bits/stdc++.h>
using namespace std;

const int maxn=10005;
int a[maxn];
int ans;

int main() {
    int n;
    cin>>n;
    for(int i=1; i<=n; i++) cin>>a[i];
    sort(a+1,a+1+n);

    for(int i=2; i<=n; i++) {
        while(a[i]<=a[i-1]) {
            ans++;
            a[i]++;
        }
    }
    cout<<ans<<endl;

    return 0;
}

/*
in:
5
1 2 3 2 5

out:
2
*/




【参考文献】
https://www.acwing.com/solution/content/92235/
https://www.acwing.com/solution/content/94995/




 


http://www.kler.cn/a/294085.html

相关文章:

  • [白月黑羽]关于仿写类postman功能软件题目的解答
  • java 随机生成验证码
  • 【SpringBoot】20 同步调用、异步调用、异步回调
  • 【LeetCode】【算法】5. 最长回文子串
  • 力扣-Mysql-3308- 寻找表现最佳的司机(中等)
  • CTFHub每日练习
  • AJAX基础与进阶
  • 贪吃蛇游戏:增加暂停按钮,每次增加10分蛇会变化
  • 199页Word智慧水务平台建设方案
  • Centos 7离线部署jenkins 2.346.3
  • 【网络安全】Jenkins任意文件读取漏洞及检测工具(CVE-2024-23897)
  • log4j 多classloader重复加载配置问题解决
  • uni-app流式接受消息/文件
  • 【Java 学习】:抽象类接口
  • 未来出行:高效智能的汽车充电桩
  • CUB-200-2011数据集及该格式自己数据集制作
  • 好用的AI编程助手MarsCode[豆包]
  • 分类预测|基于CNN-LSTM-Attention卷积-长短时记忆-注意力数据分类Matlab程序 直接运行程序或替换数据集运行程序
  • 基于IMX6ULL的Cortex-A中断原理讲解,以及编写其中断向量表
  • 算法图解(8~10贪心,动态规划,K最近邻算法)
  • 代码随想录训练营day36|1049.最后一块石头的重量II,494.目标和,474.一和零
  • WEB服务与虚拟主机/IIS中间件部署
  • 【kafka】在Linux系统中部署配置Kafka的详细用法教程分享
  • Leetcode面试经典150题-210.课程表II
  • 如何让linux程序在后台执行
  • CSP-J 之C++常用英文缩写