Minimum Number of Work Sessions to Finish the Tasks LeetCode solution in Python

1
class Solution:
2
def minSessions(self, tasks, T):
3
n = len(tasks)
4

5
@lru_cache(None)
6
def dp(mask):
7
if mask == 0:
8
return (1, 0)
9
ans = (float("inf"), float("inf"))
10
for j in range(n):
11
if mask & (1 << j):
12
pieces, last = dp(mask - (1 << j))
13
full = last + tasks[j] > T
14
ans = min(ans, (pieces + full, tasks[j] + (1 - full) * last))
15
return ans
16

17
return dp((1 << n) - 1)[0]

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0