LeetCode 1642. 可以到达的最远建筑(二分查找 / 优先队列贪心)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1642. 可以到达的最远建筑(二分查找 / 优先队列贪心)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
- 2.1 二分查找
- 2.2 優先隊列+貪心
1. 題目
給你一個整數數組 heights ,表示建筑物的高度。另有一些磚塊 bricks 和梯子 ladders 。
你從建筑物 0 開始旅程,不斷向后面的建筑物移動,期間可能會用到磚塊或梯子。
當從建筑物 i 移動到建筑物 i+1(下標 從 0 開始 )時:
- 如果當前建筑物的高度 大于或等于 下一建筑物的高度,則不需要梯子或磚塊
- 如果當前建筑的高度 小于 下一個建筑的高度,您可以使用 一架梯子 或 (h[i+1] - h[i]) 個磚塊
如果以最佳方式使用給定的梯子和磚塊,返回你可以到達的最遠建筑物的下標(下標 從 0 開始 )。
示例 1:
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/furthest-building-you-can-reach
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
2.1 二分查找
- 提取出所能到的位置的需要的 正高度差,排序,優先用梯子爬高的
1736 ms 76.2 MB
2.2 優先隊列+貪心
參考:zerotrac 🌸
- 使用size最大為 ladder 的優先隊列(小的優先),存儲正高度差,一旦size 超過了,說明需要使用磚塊了
- 累計使用磚塊超過 bricks 時結束
328 ms 44.8 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 1642. 可以到达的最远建筑(二分查找 / 优先队列贪心)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 880. 索引处的解码
- 下一篇: LeetCode 636. 函数的独占时