擅长:python、mysql、java
<p>{g}每一个问题的复杂度都取决于第一个问题列表的复杂度,将这些插入到输出dict(恒定复杂性)。在</p>
<pre><code>import os
import sys
def update_results(result_map, tup):
# Update dict inplace
# Don't need to keep count here
try:
result_map[tup] += 1
except KeyError:
result_map[tup] = 1
return
def algo(input):
# Use dict to keep count of unique pairs while iterating
# over each (key, v[i]) pair where v[i] is an integer in
# list input[key]
result_map = dict()
for key, val in input.items():
key_pairs = list()
if isinstance(val, list):
for x in val:
if isinstance(x, list):
for y in x:
update_results(result_map, (key, y))
else:
update_results(result_map, (key, x))
else:
update_results(result_map, (key, val))
return len(result_map.keys())
>>> input = { 1: [1, 2], 2: [1, 2, [2, 3]] }
>>> algo(input)
>>> 5
</code></pre>
<p>我很确定有一种更精细的方法来做这件事(同样,这取决于你问题的确切规格),但这可能会让你开始(没有进口)</p>