Todays Daily challenge solution

Time complexity :- O(nlogk)
Space complexity :- O(n)

#include
#include

using namespace std;

class Solution {
public:
int furthestBuilding(vector& h, int b, int l) {
priority_queue bricksUsed;

    int i = 0;
    for (i = 0; i < h.size() - 1; ++i) {
        int diff = h[i + 1] - h[i];

        if (diff <= 0) {
            continue;
        }

        b -= diff;
        bricksUsed.push(diff);

        if (b < 0) {
            b += bricksUsed.top();
            bricksUsed.pop();
            l--;

            if (l < 0) {
                break;
            }
        }
    }

    return i;
}

};

Comments (1)