tejeshans782k's blog

By tejeshans782k, history, 3 years ago, In English

I’ve been trying hard to solve the minimum platforms problem on geeksforgeeks platform . I’ve come up with a solution using priority Queue but my solution is failing for 5 cases(All of length 50000). I just want to know where my solution is failing. Please help me. I’m new to DSA Here’s the problem link :

(https://practice.geeksforgeeks.org/problems/minimum-platforms-1587115620/1#)

Here's my code :

struct Interval{

int arrival;
  int departure;
  int platform;    

};


 bool comp(Interval I1, Interval I2)
 {
    if(I1.arrival == I2.arrival)
        return I1.departure < I2.departure;

    else
        return I1.arrival < I2.arrival;

 }

class Solution{

public: int findPlatform(int arr[], int dep[], int n) {

vector<Interval> I(n);
    priority_queue<int, vector<int>, greater<int>> platforms;
    for(int i = 0; i < n; i++)
    {
        I[i].arrival = arr[i];
        I[i].departure = dep[i];
        I[i].platform = 0;

    }

    sort(I.begin(), I.end(), comp);



    //vector<int> platforms;

    platforms.push(I[0].departure);
    for(int i = 1; i < n; i++)
    {
        int top = platforms.top();

        if(top < I[i].arrival)
            platforms.pop();
       platforms.push(I[i].departure);


    }

    return platforms.size();
}

};

  • Vote: I like it
  • -1
  • Vote: I do not like it