擅长:python、mysql、java
<p>您只需定义一个<code>{}</code>并遍历数组,边添加值,如下所示:</p>
<pre><code>def f(array):
table = {} # Initialize the dict
for rownumber, row in enumerate(array): # Goes through all of the rows, with associated numbering
for element in set(row): # Deduplicate to avoid duplicate row numbers
if element not in table: table[element] = [] # Initialize empty row list if this element is new
table[element].append(rownumber+1) # Add the current row number to the associated list of rows
return d
print(f([[1, 2, 3], [1, 0, 0], [1, 3, 0]]))
</code></pre>
<p>这种方法是<strong>O(N<sup>2</sup>)</strong>。这是因为set()是线性的,被称为<strong>N</strong>次。而且,集合成员是常数时间。你知道吗</p>