Skip to content

Instantly share code, notes, and snippets.

@gzxultra
Created November 14, 2018 00:04
Show Gist options
  • Save gzxultra/63a8859caeef22f6a5e1fa09b13cdd65 to your computer and use it in GitHub Desktop.
Save gzxultra/63a8859caeef22f6a5e1fa09b13cdd65 to your computer and use it in GitHub Desktop.
facebook interview, task schedule
def calc_task_time1(tasks):
# use a dict, keep all task last run time
# more space used, less run time expected
time = 0
d = dict()
for t in tasks:
if t in d:
last = d[t]
time = max(last + n, time) + 1
else:
time += 1
d[t] = time
return time
def calc_task_time1(tasks):
time = 0
q = deque()
d = set()
tasks = tasks[::-1]
while tasks:
t = tasks.pop()
if t in q:
q.append(None)
tasks.append(t)
else:
q.append(t)
if len(q) >= n + 1:
q.popleft()
time += 1
return time
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment