擅长:python、mysql、java
<p>你的代码效率不高,首先我会优化它:</p>
<pre><code>def rivers_by_station_number(stations, N):
river_station = {}
for station in stations:
river_station[station.river] = river_station.get(station.river, 0) + 1
sorted_river_station = sorted(river_station.items(), key=lambda x: x[1], reverse = True)
length = len(sorted_river_station)
if N>= length: return sorted_river_station
min_station_count = sorted_river_station[N-1][1]
while N<length and sorted_river_station[n] == min_station_count:
N+=1
return sorted_river_station[:N]
</code></pre>
<p>我要做的是,我找到第N条河流的站点计数,并从该河流迭代到最后,同时检查其余河流的站点数量是否相同</p>