Given an array of
You can attend an event
Return the maximum number of events you can attend.
events
where events[i] = [startDayi, endDayi]
. Every event i
starts at startDayi
and ends at endDayi
.You can attend an event
i
on any day d
where startTimei <= d <= endTimei
. Notice that you can only attend one event at any time d
.Return the maximum number of events you can attend.
Example:
Input: events = [[1,2],[2,3],[3,4]] Output: 3
Approach
Java
import java.util.Arrays;import java.util.Comparator;public class MaxNumEventsAttended {public static void main(String[] args) {int events[][] = { { 1, 2 }, { 2, 3 }, { 3, 4 } };System.out.println(maxEvents(events));}// function to count the eventsstatic int maxEvents(int[][] events) {// java 8// Arrays.sort(events, (a, b) -> (a[1] == b[1]) ?//(a[0] - b[0]) : (a[1] - b[1]));// sort array based on conditionArrays.sort(events, new Comparator<int[]>() {@Overridepublic int compare(int[] a, int[] b) {if (a[1] == b[1])return a[0] - b[0];elsereturn a[1] - b[1];}});int n = events.length;int cnt = 0;int start = 0, temp = 0;boolean vis[] = new boolean[events[n - 1][1] + 1];// iterate for all eventsfor (int i = 0; i < n; i++) {if (i > 0 && events[i][0] == events[i - 1][0]) {start = temp;} elsestart = events[i][0];for (int j = start; j <= events[i][1]; j++) {if (vis[j] == false) {temp = j;cnt++;vis[j] = true;break;}}}return cnt;}}
C++
#include <bits/stdc++.h>using namespace std;//comparator used for sortingstatic bool cmp(vector<int> &a,vector<int> &b){if(a[1]==b[1])return a[0]<b[0];return a[1]<b[1];}//function to count the eventsint maxEvents(vector<vector<int>>& events){sort(events.begin(),events.end(),cmp);int n=events.size();int cnt=0;int start=0,temp=0;bool vis[events[n-1][1]+1];memset(vis,false,sizeof(vis));//itearte for all eventsfor(int i=0;i<n;i++){if(i>0&&events[i][0]==events[i-1][0]){start=temp;}elsestart=events[i][0];for(int j=start;j<=events[i][1];j++){if(vis[j]==false){temp=j;cnt++;vis[j]=true;break;}}}return cnt;}int main(){vector<vector<int>> events ={{1,2},{2,3},{3,4}};cout<<maxEvents(events);return 0;}
No comments:
Post a Comment