#6694. 商品价格预警系统

商品价格预警系统

商品价格预警系统

题目描述

某电商平台正在分析一款商品的历史价格变化。

平台每天会记录当天商品的售价:

a[i]

其中第 i 天的价格为 a[i]

为了帮助用户判断商品是否曾经出现过低价,系统需要生成一份历史最低价格记录

对于每一天 i,系统希望知道:

从商品上架第 1 天开始,到第 i 天结束为止,商品曾经出现过的最低价格是多少。

也就是说,第 i 天需要输出:

min(a1,a2,...,ai)\min(a_1,a_2,...,a_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

注意事项

  1. i 天的统计结果包含当天价格。
  2. 不能每一天重新扫描前面的所有价格,否则效率较低。
  3. 需要保存之前已经得到的最低价格。

提示

可以维护一个数组:


测试点编号 n ≤ 特殊性质 覆盖点 / 设计目的
1 单元素 检查首个数初始化 mn 后立即输出
2 5 严格递增 最小值始终为第一个数,卡错误更新或输出原数组
3 严格递减 每一步都会产生新的前缀最小值
4 6 全相同 检查相等时最小值保持不变
5 7 正负混合 覆盖负数、零、重复最小值
6 8 含 0 与重复负数 检查相邻重复值和多次更新
7 10 非严格递减 覆盖重复值与阶段性下降
8 负数开头后递增 当前最小值长期保持为首项负数
9 long long 边界 覆盖 long long 最大值、最小值和极端更新
10 20 较长混合序列 覆盖多段保持、多次下降、重复值综合情况