[英]execution time for python program
我在hackerrank中提交的大多數解決方案都拋出了超時錯誤,因此我試圖在我的PC中找到崇高文本3中的代碼之一的執行時間,並導致[完成時間為220.5秒],輸入為200萬輸入。
問題陳述: https : //www.hackerrank.com/challenges/py-the-captains-room/problem
我的解決方案:
n=int(input())
l_list=list(map(int,(input().split())))
l_set=set(l_list)
for i in l_set:
c=l_list.count(i)
if c==1:
print(i)
請幫助我優化代碼,還是我的系統太慢???
您的循環是O(n ^ 2),因為list.count
是O(n)。 您還可以跳過O(n)操作來創建集合。
您應該考慮嘗試一次遍歷數組並進行所有計數。 現在,您要遍歷集合中的所有項,並且對於每一項l_list.count(i)
都會遍歷該列表一次,這給您帶來了可怕的O(n ^ 2)性能。
我不想給你直接的答案,因為任務是學習的經歷...
我的代碼在下面遇到了同樣的問題..
k=int(input())
a_list=list(input().split())
a_set=set(a_list)
for each in a_set:
if(a_list.count(each)!=k):
print(each)
訣竅是使用集合中的計數器。 請參閱下面的討論如何計算列表項的出現?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.