8000 Create Count Days Without Meetings.py · erjan/coding_exercises@b27d989 · GitHub
[go: up one dir, main page]

Skip to content

Commit b27d989

Browse files
authored
Create Count Days Without Meetings.py
1 parent 80f5195 commit b27d989

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

Count Days Without Meetings.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
'''
2+
You are given a positive integer days representing the total number of days an employee is available for work (starting from day 1). You are also given a 2D array meetings of size n where, meetings[i] = [start_i, end_i] represents the starting and ending days of meeting i (inclusive).
3+
4+
Return the count of days when the employee is available for work but no meetings are scheduled.
5+
6+
Note: The meetings may overlap.
7+
'''
8+
9+
#i know its pretty easy, its only 1438 diff but i m too hectic
10+
11+
#bad solution
12+
13+
class Solution:
14+
def countDays(self, days: int, meetings: List[List[int]]) -> int:
15+
16+
res = [0 for f in range(days)]
17+
newm = []
18+
meetings.sort(key = lambda x: x[0])
19+
20+
for i in range(len(meetings)-1):
21+
22+
cur = meetings[i]
23+
for j in range(i, len(meetings)):
24+
nxt = meetings[j]
25+
26+
if cur[1]>=nxt[0]:
27+
newm.append(cur[0], nxt[1])
28+
else:
29+
newm.append(cur)
30+
31+
32+
for st,end in newm:
33+
for i in range(st,end+1):
34+
res[i-1] = 0
35+
36+
37+
38+
res = sum([1 for x in res if x == 0])
39+
return res
40+
41+
----------------------------------------------------------------------
42+
43+
class Solution:
44+
def countDays(self, days: int, meetings: List[List[int]]) -> int:
45+
meetings.sort()
46+
47+
merged_meetings = []
48+
for meeting in meetings:
49+
if not merged_meetings or meeting[0] > merged_meetings[-1][1]:
50+
merged_meetings.append(meeting)
51+
else:
52+
merged_meetings[-1][1] = max(merged_meetings[-1][1], meeting[1])
53+
54+
meeting_days_count = 0
55+
for start, end in merged_meetings:
56+
meeting_days_count += end - start + 1
57+
58+
return days - meeting_days_count
59+

0 commit comments

Comments
 (0)
0