1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

思路

  • 核心:为每个位置iii找到不小于初值AiA_iAi​的、最小的未被使用的整数。
  • 数据结构:使用“下一个可用位置”并查集(路径压缩)映射,记映射parent[x]parent[x]parent[x]表示“从xxx开始的下一个候选位置”。当某个数yyy被占用后,设parent[y]=y+1parent[y]=y+1parent[y]=y+1。
  • 操作:对每个AiA_iAi​,执行带路径压缩的查找find(Ai)find(A_i)find(Ai​)得到最小可用的y≥Aiy\ge A_iy≥Ai​,将其放入答案并标记parent[y]=y+1parent[y]=y+1parent[y]=y+1。
  • 正确性:路径压缩保证每次返回的是当前≥Ai\ge A_i≥Ai​的最小未用值;按序处理并立即占用,确保最终全局唯一且每个位置增加量最小。
  • 复杂度:均摊时间复杂度为O(N α(U))O(N\,\alpha(U))O(Nα(U)),其中UUU为值域上界(约为max⁡(Ai)+N\max(A_i)+Nmax(Ai​)+N),空间复杂度为O(已占用的不同值个数)O(\text{已占用的不同值个数})O(已占用的不同值个数)。

C++

P3416.第2题-重复元素数组

    1000ms Tried: 22 Accepted: 7 Difficulty: 5 所属公司 : 钉钉
    算法与标签>并查集

题目内容

小明被分配到一个生成不重复元素数组的任务,对于给定一个长度为NNN的数组 A=[A1,A2,.…,AN]A=[A1,A2,.…,AN]A=[A1,A2,.…,AN],数组中有可能有重复出现的整数。

现在小明要按以下方法将其修改为没有重复整数的数组。小明会依次修改A2,A3,…,ANA2,A3,…,ANA2,A3,…,AN。

当修改AiAiAi时,小明会检查AiAi Ai是否在A1 A1A1~Ai−1Ai-1 Ai−1中出现过。如果出现过,则小明会给AiAiAi加上111;如果新的AiAiAi仍在之前出现过,小明会持续给AiAiAi加111,直到AiAiAi没有在A1A1A1 ~Ai−1Ai-1Ai−1中出现过。

当ANANAN也经过上述修改之后,显然AAA数组中就没有重复的整数了。

现在给定初始的AAA数组,请你帮小明计算出最终的AAA数组。

输入描述

第一行包含一个整数NNN。

第二行包含NNN个整数A1,A2,…,ANA1,A2,…,ANA1,A2,…,AN。

其中,1≤N≤105,1≤Ai≤1061≤N≤10^5,1≤Ai≤10^61≤N≤105,1≤Ai≤106

输出描述

输出NNN个整数,依次是最终的A1,A2,...,ANA1,A2,...,ANA1,A2,...,AN。

样例1

输入

5
2 1 1 3 4

输出

2 1 3 4 5

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 3, 34ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?