#2677. 可以到达的最远建筑

可以到达的最远建筑

说明

你从建筑物 0 开始旅程,不断向后面的建筑物移动,期间可能会用到砖块或梯子。

当从建筑物i i 移动到建筑物i+1 i+1(下标 从 0 开始 )时:

1、如果当前建筑物的高度 大于或等于 下一建筑物的高度,则不需要梯子或砖块

2、如果当前建筑的高度 小于 下一个建筑的高度,您可以使用 一架梯子 或 (h[i+1]h[i]h[i+1] - h[i]) 个砖块

如果以最佳方式使用给定的梯子和砖块,返回你可以到达的最远建筑物的下标(下标 从 0 开始 )。

输入格式

第一行,建筑物的数量nn

第二行,建筑物的高度heights,空格隔开

第三行,一个整数bricks,代表砖块数量

第四行,一个整数ladders,代表梯子数量

输出格式

可以到达的最远建筑物的下标(下标 从 0 开始 )

样例

7
4 2 7 6 9 14 12
5
1
4

解释:

从建筑物 0 出发,你可以按此方案完成旅程:

  • 不使用砖块或梯子到达建筑物 1 ,因为42 4 \geqslant 2
  • 使用 5 个砖块到达建筑物 2 。你必须使用砖块或梯子,因为2<7 2 < 7
  • 不使用砖块或梯子到达建筑物 3 ,因为 767 \geqslant 6
  • 使用唯一的梯子到达建筑物 4 。你必须使用砖块或梯子,因为6<9 6 < 9
  • 无法越过建筑物 4 ,因为没有更多砖块或梯子。

9
4 12 2 7 3 18 20 3 19
10
2
7
4
14 3 19 3
17
0
3

数据范围

1heights.length1051 \leqslant heights.length \leqslant 10^5

1heights[i]1061 \leqslant heights[i] \leqslant 10^6

0bricks1090 \leqslant bricks \leqslant 10^9

0laddersheights.length0 \leqslant ladders \leqslant heights.length

来源

LeetCode 1642