簡體   English   中英

python程序的執行時間

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM