Skip to content

Commit c2737e8

Browse files
authored
Create fair-distribution-of-cookies.py
1 parent 15cccd0 commit c2737e8

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Time: O(k * 3^n)
2+
# Space: O(2^n)
3+
4+
# dp, submask enumeration
5+
class Solution(object):
6+
def distributeCookies(self, cookies, k):
7+
"""
8+
:type cookies: List[int]
9+
:type k: int
10+
:rtype: int
11+
"""
12+
total = [0]*(1<<len(cookies))
13+
for mask in xrange(1<<len(cookies)):
14+
total[mask] = sum(cookies[i] for i in xrange(len(cookies)) if mask&(1<<i))
15+
dp = [[float("inf")]*(1<<len(cookies)) for _ in xrange(2)]
16+
dp[0][0] = 0
17+
for i in xrange(k):
18+
for mask in xrange(1<<len(cookies)):
19+
submask = mask
20+
while submask:
21+
dp[(i+1)%2][mask] = min(dp[(i+1)%2][mask], max(total[submask], dp[i%2][mask^submask]))
22+
submask = (submask-1)&mask
23+
return dp[k%2][-1]

0 commit comments

Comments
 (0)