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

解题思路

先把每个数据包拆成两个数组:

  • ids[i] 表示第 i 个数据包的 id
  • priorities[i] 表示第 i 个数据包的 priority

题目要求:对于每个长度为 kkk 的滑动窗口,找到窗口内每个数据包右边第一个 priority 更高的数据包,并输出那个数据包的 id。如果一个窗口里没有任何位置满足条件,则跳过该窗口。

P14186.数据包优先级窗口查找(100分)

    1000ms Tried: 6 Accepted: 2 Difficulty: 5 所属公司 : 华为od
    算法与标签>栈

题目内容

给定 nnn 个数据包,每个数据包包含 ididid 和 priorityprioritypriority。维护一个大小为 kkk 的滑动窗口,对于每个窗口,找出窗口内每个数据包右边第一个 priorityprioritypriority 更高的数据包 ididid。

输入描述

  • nnn: 数据包数量 (1≤n≤1061 ≤ n ≤ 10^61≤n≤106)
  • kkk: 窗口大小 (1≤k≤1001 ≤ k ≤ 1001≤k≤100)
  • packetspacketspackets: 数据包内容,长度为 nnn 的数组,每个元素格式为 id:priorityid:priorityid:priority

数据包格式:

  • 格式: <id>:<priority><id>:<priority><id>:<priority>
  • ididid: 唯一标识符 (1≤id≤1091 ≤ id ≤ 10^91≤id≤109)
  • priorityprioritypriority: 优先级 (1≤priority≤1091 ≤ priority ≤ 10^91≤priority≤109),数值越大优先级越高

处理规则:

  • 窗口滑动: 从左到右滑动,每次窗口包含 kkk 个连续数据包
  • 每个窗口的处理:
    • 向右查找第一个 priorityprioritypriority 更高的数据包
    • 找到 → 记录该数据包的 ididid
    • 未找到 → 不记录
  • 跳过条件: 数据包不足以构成完整窗口 (窗口大小 k>k >k> 数据包总数 nnn) →→→ 跳过该窗口 窗口内未找到任何 priorityprioritypriority 更高的数据包 →→→ 跳过该窗口

输出描述

输出所有未跳过窗口的结果序列,每个序列包含该窗口内找到的所有"下一个更高优先级数据包 ididid"

样例1

输入

5,3,[[1,5],[2,3],[3,7],[4,6],[5,4]]

输出

[[3,3],[3]]

说明

窗口 [0,2][0,2][0,2]: 数据包为 [1:5,2:3,3:7][1:5, 2:3, 3:7][1:5,2:3,3:7]

1:51:51:5 后面第一个优先级更高的是 3:73:73:7,输出 333

2:32:32:3 后面第一个优先级更高的是 3:73:73:7,输出 333

3:73:73:7 后面没有优先级更高的,不输出

该窗口输出: 333 333

窗口 [1,3][1,3][1,3]: 数据包为 [2:3,3:7,4:6][2:3, 3:7, 4:6][2:3,3:7,4:6]

2:32:32:3 后面第一个优先级更高的是 3:73:73:7,输出 333

3:73:73:7 后面没有优先级更高的,不输出

4:64:64:6 后面没有优先级更高的,不输出

该窗口输出: 333

窗口 [2,4][2,4][2,4]: 数据包为 [3:7,4:6,5:4][3:7, 4:6, 5:4][3:7,4:6,5:4]

3:73:73:7 后面没有优先级更高的,不输出

4:64:64:6 后面没有优先级更高的,不输出

5:45:45:4 后面没有优先级更高的,不输出

该窗口无输出

样例2

输入

4,3,[[1,1],[2,2],[3,3],[4,4]]

输出

[[2,3],[3,4]]

说明

窗口 [0,2][0,2][0,2]: 数据包为 [1:1,2:2,3:3][1:1, 2:2, 3:3][1:1,2:2,3:3]

1:11:11:1 后面第一个优先级更高的是 2:22:22:2,输出 222

2:22:22:2 后面第一个优先级更高的是 3:33:33:3,输出 333

3:33:33:3 后面没有优先级更高的,不输出

输出: 222 333

窗口 [1,3][1,3][1,3]: 数据包为 [2:2,3:3,4:4][2:2, 3:3, 4:4][2:2,3:3,4:4]

2:22:22:2 后面第一个优先级更高的是 3:33:33:3,输出 333

3:33:33:3 后面第一个优先级更高的是 4:44:44:4,输出 444

4:44:44:4 后面没有优先级更高的,不输出

输出: 333 444

样例3

输入

4,3,[[4,4],[3,3],[2,2],[1,1]]

输出

[]

说明

窗口 [0,2][0,2][0,2]: 数据包为 [4:4,3:3,2:2][4:4, 3:3, 2:2][4:4,3:3,2:2]

4:44:44:4 后面没有优先级更高的,不输出

3:33:33:3 后面没有优先级更高的,不输出

2:22:22:2 后面没有优先级更高的,不输出

该窗口不输出

窗口 [1,3][1,3][1,3]: 数据包为 [3:3,2:2,1:1][3:3, 2:2, 1:1][3:3,2:2,1:1]

3:33:33:3 后面没有优先级更高的,不输出

2:22:22:2 后面没有优先级更高的,不输出

1:11:11:1 后面没有优先级更高的,不输出

该窗口不输出

所有窗口均无输出,最终结果输出 [][][]

样例4

输入

3,4,[[1,5],[2,3],[3,7]]

输出

[]

说明

窗口大小 4>4>4> 数据包数量 333,窗口无输出,最终结果输出 [][][]

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


ScanQRCodePrompt

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

Forgot password or username?