首先呢,雖然可以使用遞迴,但由於遞迴次數限制,無法AC,只有50%(我試過),先附上程式碼參考:
再來就是比較簡單的迴圈(C用來記數,V用來存是否訪問過(訪問過為1,未訪問為0)),這個就可以成功過關了!
n=int(input())
a=list(map(int,input().split()))
v=[0]*n
c=0
for i in range(n):
if not v[i]:
cur=i
while not v[cur]:
v[cur]=1
cur=a[cur]
c+=1
print(c)