不太懂為甚麼這樣寫會TLE
前九筆都成功AC 就最後一筆跑不過
不太懂為甚麼這樣寫會TLE
前九筆都成功AC 就最後一筆跑不過
n = int(input())list1 = [int(c) for c in input().split()]posit = [0]*ncount = 0for i in list1:if posit[i]==0:head = ij = -1while head!=j:posit[i] = 1j = list1.index(i)i = jelse:count+=1print(count)
這題也是困擾了我一陣子,而我最一開始的寫法也是這樣
後來想了一下,在資料數目大的時候,count每次都只有+1,這樣就需要判斷很多次
因此我將count那部分用index函數來宣告
程式碼如下:
不太懂為甚麼這樣寫會TLE
前九筆都成功AC 就最後一筆跑不過
n = int(input())list1 = [int(c) for c in input().split()]posit = [0]*ncount = 0for i in list1:if posit[i]==0:head = ij = -1while head!=j:posit[i] = 1j = list1.index(i)i = jelse:count+=1print(count)
不要用list.index()!!!它很慢