0

Im trying to solve the activity selection problem but do not understand how to improve my code to avoid the Time Limit Error (TLE) . Please suggest what went wrong in this simple question .

question : https://www.codingninjas.com/codestudio/problems/1062658?topList=striver-sde-sheet-problems&utm_source=striver&utm_medium=website&leftPanelTab=1

My code :

#include<algorithm>
vector<int> maximumMeetings(vector<int> &start, vector<int> &end) {
    // Write your code here.
    vector<vector<int>> A;
    vector<int> temp ;
    for(int i=0; i<start.size(); i++){
        temp.clear();
        temp.push_back(start[i]);
        temp.push_back(end[i]);
        temp.push_back(i+1);
        A.push_back(temp);
    }
    sort(A.begin(),A.end(),[](vector<int>A,vector<int>B){
        if(A[1]!=B[1]){
            return A[1]<B[1];
        }
        else{
            return A[2]<B[2];
        }
        
    });
    vector<int> ans;
    ans.push_back(A[0][2]);
    int j=0;
    for(int i=1; i<A.size(); i++){
        if(A[i][0]>A[j][1]){
            ans.push_back(A[i][2]);
            j=i;
        }
    }
    return ans ;
}

EDIT 1 : here is the problem copy pasted from the site , as requested in the comments , tho I have not pasted the example test cases to keep it short .

Problem Statement You are given the schedule of N meetings with their start time Start[i] and end time End[i]. But you have only 1 meeting room. So, you need to tell the meeting numbers you can organize in the given room, such that the number of meetings organized is maximum. Note: The start time of one chosen meeting can’t be equal to the end time of the other chosen meeting. Also for the same end time, a meeting with a smaller index is preferred.

The doubt has been solved , I just needed to pass the vector by reference in the lambda comparator function for sort function .

0 Answers0