牛牛有 n 个不同元素的数组 a ,牛牛会在数组中选择第一个数,然后以它为起始从数组中从左至右构造出一个递减序列,并把这个序列从数组中删除,再次进行选择,直到数组为空。例如 a=\4,3,5,1,2 ,首先挑选 4 构造递减序列,得到序列 \4,3,1 ,将其从数组中 a 删除, a=\5,2 ,挑选 5 构造递减序,得到 \5,2 ,将其从数组 a 中删除,数组 a 为空,结束挑选。牛牛选择给你数组 a ,希望你能帮助牛牛输出每次的序列。
第一行为 n ,表示数组的大小。 第二行有 n 个不同的整数,表示数组元素 a_i 。 1≤ n≤ 10^5,1≤ a_i ≤ n
输出为多行,每行表示一次挑选的输出。
5 4 3 5 1 2
4 3 1 5 2
考点:模拟
数据规模 n ≤ 1e5 | 限制 1 秒 / 256MB | 标准输入输出
推荐方向:模拟
本题切入点
按题意反复从数组左侧扫描构造递减序列并删除,用标记数组记录已删除位置,避免真的做 O(n²) 的删除。
不涉及复杂算法,把题目描述的流程原样翻译成代码逐步执行即可。
思路框架(模拟 通法 · 非本题专属)
实现要点:结构上通常是一个外层循环包住若干 if/else 分支;只要状态定义清楚,正确率很高。
复杂度:时间 O(操作次数) | 空间 O(状态数)
该范式的通法易错点
对照本题
样例 1:输入 5 / 4 3 5 1 2 → 输出 4 3 1 / 5 2
如题意所示
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:【2023】贝壳找房春招前端工程师笔试卷1;【2023】贝壳找房春招数据挖掘/机器学习工程师笔试卷1。