擅长:python、mysql、java
<p>由于使用<code>.count()</code>函数多次遍历整个数组,因此算法速度较慢。在第二个循环中,您还将使用max()函数多次查看字典。这导致了O(N^2)时间复杂度</p>
<p>要实现O(N)时间,您应该在数组中只为每个项添加1,然后根据最大总id/min id处理字典:</p>
<pre><code>arr=[1,2,3,4,5,4,3,2,1,3,4]
counts = {}
for bird in arr: counts[bird] = counts.get(bird,0) + 1 # +1 per bird
result,_ = max(counts.items(),key=lambda kv:(kv[1],-kv[0])) # max total / min id
print(result) # 3
</code></pre>