#6694. 商品价格预警系统
商品价格预警系统
商品价格预警系统
题目描述
某电商平台正在分析一款商品的历史价格变化。
平台每天会记录当天商品的售价:
a[i]
其中第 i 天的价格为 a[i]。
为了帮助用户判断商品是否曾经出现过低价,系统需要生成一份历史最低价格记录。
对于每一天 i,系统希望知道:
从商品上架第 1 天开始,到第 i 天结束为止,商品曾经出现过的最低价格是多少。
也就是说,第 i 天需要输出:
请你帮助平台完成价格分析。
输入格式
第一行输入一个整数:
n
表示商品价格记录的天数。
第二行输入 n 个整数:
a1 a2 ... an
表示每天记录的商品价格。
输出格式
输出 n 个整数。
第 i 个整数表示:
从第 1 天到第 i 天之间出现过的最低价格。
每个数字之间使用空格分隔。
输入样例
6
10 8 12 5 7 3
输出样例
10 8 8 5 5 3
样例解释
商品每天价格如下:
第1天 第2天 第3天 第4天 第5天 第6天
10 8 12 5 7 3
第 1 天:
当前最低价格:
10
第 2 天:
比较:
min(10,8)=8
当前最低价格:
8
第 3 天:
比较:
min(8,12)=8
最低价格仍然是:
8
第 4 天:
出现新低价:
min(8,5)=5
最终得到:
10 8 8 5 5 3
注意事项
- 第
i天的统计结果包含当天价格。 - 不能每一天重新扫描前面的所有价格,否则效率较低。
- 需要保存之前已经得到的最低价格。
提示
可以维护一个数组:
| 测试点编号 | n ≤ | 特殊性质 | 覆盖点 / 设计目的 |
|---|---|---|---|
| 1 | 单元素 | 检查首个数初始化 mn 后立即输出 |
|
| 2 | 5 | 严格递增 | 最小值始终为第一个数,卡错误更新或输出原数组 |
| 3 | 严格递减 | 每一步都会产生新的前缀最小值 | |
| 4 | 6 | 全相同 | 检查相等时最小值保持不变 |
| 5 | 7 | 正负混合 | 覆盖负数、零、重复最小值 |
| 6 | 8 | 含 0 与重复负数 | 检查相邻重复值和多次更新 |
| 7 | 10 | 非严格递减 | 覆盖重复值与阶段性下降 |
| 8 | 负数开头后递增 | 当前最小值长期保持为首项负数 | |
| 9 | long long 边界 | 覆盖 long long 最大值、最小值和极端更新 |
|
| 10 | 20 | 较长混合序列 | 覆盖多段保持、多次下降、重复值综合情况 |