TLEの回避について AtCoder
解決したいこと
TLEの回避について
atcoderに挑戦している初心者です。
先日の「ユニークビジョンプログラミングコンテスト2024 クリスマス(AtCoder Beginner Contest 385)」
のC問題がTLEになってしまいます。
解決方法を教えて頂きたいです。
(Qiitaも初めてなので聞き方があっているか教えて頂きたいです)
該当するソースコード
n = int(input())
h = list(map(int,input().split()))
lastmax = 0
for i in range(n): #開始するindex
for j in range(1,n-1): #等間隔j
nowmax = 1 #このループの最大count
space = j #間隔を保存
if space + i < n: #範囲外にならないように
nowh = h[i] #現在のh
nexth = h[space + i] #次のh
else:
break #範囲外になるなら飛ばす
while nowh == nexth: #次のhが現在のhと等しい かつ
if (space+j) + i < n: #範囲外エラー回避
nowh = nexth#現在のhを次のhに
space += j #jは等間隔なので space+j
nexth = h[space + i] #次のhをspace更新後に設定
else:
nowmax += 1
break
nowmax += 1 #最大countを進める
lastmax = max(nowmax,lastmax) #最大記録を更新
print(lastmax)
自分で試したこと
breakで飛ばせば出来そうな気がするのですが、まだ解決できていません
0