题目解析
本题数量级应该不大,根据网上考友反馈来看,暴力解法即可AC。
暴力解法思路:
- 首先将所有超市按照水果价格进行升序
- 然后双重循环,外层遍历时刻 i(1~n),内层遍历每个超市 x,
- 若 x[0] ≤ i ≤ x[1],则说明超市x的营业时间包含住了时刻 i,并且由于超市已经按照水果价格降序,因此时刻 i 首次匹配到的超市,即为价格最优(最便宜)的超市。因此时刻 i 消费了 x[2] 元。
- 否则,继续遍历下一个超市
- 累加每个时刻的最优消费金额,即为所求的采购水果的最便宜的花费总和。
暴力解法思路的时间复杂度为 O(n * m),即最坏情况下,每个时刻都要遍历所有超市
我这里提供一种优先队列解法思路:
前置:定义一个优先队列 pq,元素为超市,超市的水果价格越便宜(小)越优先
有用例如下:
n = 5
m = 3</