本题求 p<q 时 loads[p]−loads[q] 的最大值,也就是「左侧某个值减去右侧某个值」的最大下降。
一次线性扫描即可:从左到右维护已经见过的前缀最大值 peak。扫到位置 q 时,用 peak−loads[q] 更新答案,再把 peak 与当前值取最大。
若全程不下降,答案保持 0。不要用「全局最大减全局最小」,因为最大可能出现在最小后面,那样 p<q 不成立。
接口 maxLoadDrop(loads) 返回该非负整数。
按提交次序记录每次变更结束后的代码行数合计,记入数组 loads。求下标 p、q 满足 p<q 时 loads[p]−loads[q] 能取到的最大值。若全程没有变少,返回 0。
请实现:
maxLoadDrop(loads: int[]) -> int
一行整型数组,形如 [8,25,18,22,12,30,4]。
约束:
一个非负整数:最大回落幅度;不存在回落时为 0。
输入:
[8, 25, 18, 22, 12, 30, 4]
输出:
26
说明:从 30 落到 4,下降 26,比 25 落到 4 的 21 更大。
输入:
[5, 6, 7, 8]
输出:
0
说明:总量一路非降,没有回落。
输入:
[100, 20]
输出:
80
说明:仅一对下标,下降 80。
Scan the QR code below with WeChat to sign in
设置一个用户名,下一步用微信扫码完成注册
请使用微信扫描下方二维码完成注册