本文主要是介绍【leetcode C++】1642. 可以到达的最远建筑 1642. Furthest Building You Can Reach,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1642. 可以到达的最远建筑
1642. Furthest Building You Can Reach
class Solution {
public:int furthestBuilding(vector<int>& heights, int bricks, int ladders) {priority_queue<int, vector<int>, greater<int> > PQ; // 小顶堆,用来保存前ladders个最大值int sum = 0; // 除了前ladders个最大值之外的和int cnt = 0; //最远可以到达的下标for(int ii = 1; ii < heights.size(); ii++) {int height = max(0, heights[ii] - heights[ii - 1]); // 高度差,取非负数PQ.push(height);if(PQ.size() > ladders) {sum += PQ.top();PQ.pop();if(sum > bricks) break;}cnt = ii;}return cnt;}
};
这篇关于【leetcode C++】1642. 可以到达的最远建筑 1642. Furthest Building You Can Reach的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!