コードのパフォーマンスについて
コーディングテスト練習サイトCodilityの「FrogRiverOne」という問題で、書いたコードのパフォーマンスが悪かったのですが、どのように改善すれば良いのでしょうか。
パフォーマンスの良いコードの書き方がよくわかっていないので、学べるサイトや教材などももしおすすめのものがあれば教えていただきたいです。
FrogRiverOne coding task - Learn to Code - Codility
上記のFrogRiverOneについて日本語で書かれた記事
書いたコード
python
def solution(X, A):
result = 0
tmp = 0
#iは配列番号
for i in range(0, len(A)):
#jは1からXまでの数
for j in range(1, X+1):
#そもそもjが要素にない場合
if j not in A:
result = -1
return result
break
#もし配列番号iの要素がjならtmpにその要素番号を格納
elif A[i] == j:
if tmp < A.index(j):
tmp = A.index(j)
result = tmp
return result
パフォーマンス結果
Detected time complexity:O(N ** 2)