私のコードは短く、他のコードよりも反復回数が少ないですが、codechef.comで他のコードが受け入れられている間も、時間制限を超えてエラーが発生します。コードはcodechef.com の「あいまいな順列」の問題を解決しているのはなぜこのコードは次のとおりです。反復回数が多い場合でも、1つのコードが他のコードより高速なのはなぜですか?
def inverse(data,x):
temp=[]
for i in range(x):
temp.append(0)
for i in range(x):
temp[data[i]-1]=i+1
return temp
def main():
while 1:
x=input()
if not x:
return
data=raw_input().split(' ')
for i in range(len(data)):
data[i]=int(data[i])
temp = inverse(data,x)
if temp==data:
print 'ambiguous'
else:
print 'not ambiguous'
if __name__ == "__main__":
main()
このコードよりも速く
:
while True:
output=[]
n= input()
if n==0: break
caseList= raw_input().split()
amb=1
for i in range(1, n+1):
output.append(str(caseList.index(str(i))+1))
if output==caseList:
print ("ambiguous")
else:
print ("not ambiguous")
...
この問題へのリンク:http://www.codechef.com/problems/PERMUT2/ – jsbueno