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分析

解题思路

  • 算法:计数 + 贪心

  • 核心想法

    1. 统计每个号码出现次数。若某个号码出现 超过 2 次,则无法把它放入两队(每队内不能重复),直接返回 null。
    2. 将出现 2 次 的号码记为 pairs(它们必须一左一右各放一个);出现 1 次 的号码记为 singles(可任选放在哪一队)。
    3. 设队伍总人数为 n,每队人数应为 k = n/2。pairs 中的号码会让两队各占用一个名额,剩余的名额由 singles 填充。
    4. 为了让 n1 的元素和最小:在 singles 升序后,取最小的 k - |pairs| 个放入 n1,其余放入 n2。最后两队分别排序输出。

P4449.第1题-学生排队

    1000ms Tried: 959 Accepted: 204 Difficulty: 3 所属公司 : 华为
    算法与标签>贪心算法

题目内容

有一队学生进行排队 n0n0n0,长度【1,500】【1,500】【1,500】,数量为偶数,每个人手上拿着一个号码牌,号码牌可以重复,现在需要将学生根据号码牌分成两队 n1n1n1 和 n2n2n2,要求:

  • 两队的数量相等。

  • n1n1n1 队列中的号码牌不能重复,n2n2n2 队列中的号码牌不能重复。

  • n1n1n1 和 n2n2n2 需从小到大进行排序

  • n1n1n1 所有的号码牌数字之和最小

如果可以按照要求排成两队则输出该队列 (n1,n2)(n1,n2)(n1,n2),如果不能按要求分成两队则返回 nullnullnull

输入描述

给定一个正整数数组,长度【1,500】【1,500】【1,500】

输出描述

两个队列

样例1

输入

1 1 1 2

输出

null

说明

对 n0n0n0 进行排队的唯一可行方案是 n1=[1,1]n1=[1,1]n1=[1,1] 和 n2=[1,2]n2=[1,2]n2=[1,2] 。但 n1n1n1 不是由互不相同的元素构成。因此,返回 nullnullnull 。

样例2

输入

1 1 2 4 3 6

输出

1 2 3
1 4 6

说明

n1=[1,2,3],n2=[1,4,6]n1=[1,2,3],n2=[1,4,6]n1=[1,2,3],n2=[1,4,6] n1n1n1 的所有数字之和最小

登录后即可使用 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 2, 77ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

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

Forgot password or username?