slight optimisation
This commit is contained in:
parent
f7dd9437aa
commit
f13364b411
|
@ -30,15 +30,10 @@ def dfs(input_nums: list[int], num_groups: int = 3):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
stack = [{x} for x in input_nums]
|
stack = [{x} for x in input_nums]
|
||||||
evaluated = set()
|
|
||||||
while stack:
|
while stack:
|
||||||
if len(stack)>1000:
|
if len(stack)>1000:
|
||||||
print(f'Stack size is {len(stack)}')
|
print(f'Stack size is {len(stack)}')
|
||||||
group_1 = stack.pop()
|
group_1 = stack.pop()
|
||||||
g1 = tuple(sorted(group_1))
|
|
||||||
if g1 in evaluated:
|
|
||||||
continue
|
|
||||||
evaluated.add(g1)
|
|
||||||
|
|
||||||
num_packages = len(group_1)
|
num_packages = len(group_1)
|
||||||
if best and best[0] < num_packages:
|
if best and best[0] < num_packages:
|
||||||
|
@ -54,7 +49,10 @@ def dfs(input_nums: list[int], num_groups: int = 3):
|
||||||
best = (num_packages, quantum_entanglement, group_1)
|
best = (num_packages, quantum_entanglement, group_1)
|
||||||
print(best)
|
print(best)
|
||||||
else: # delta > 0
|
else: # delta > 0
|
||||||
|
min_package = min(group_1)
|
||||||
for x in sorted(diff):
|
for x in sorted(diff):
|
||||||
|
if x > min_package:
|
||||||
|
break
|
||||||
stack.append(group_1 | {x})
|
stack.append(group_1 | {x})
|
||||||
return best
|
return best
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue