Div1 Easy PreviousOccurrence
愚直に探索するだけ。
ただ、defaultValue = 1 のときは、0, 1, 1, 1,...となり、2以上の数にならないので気を付ける。
良い方法が思いつかずとりあえず書いてみた後、適当な数で探索してみたところ、Pythonでも間に合いそうだったので提出したらACでした。
本当は全探索すべきなんだけど、Pythonではかなり時間がかかりそうだったので適当に切り上げました。
一応、ACしたコードを。
class PreviousOccurrence(): def findValue(self, defaultValue, query): if query==0: return 0 if defaultValue==1: if query==1: return 1 else: return -1 NOW=0 LAST=[-1]*(5000000) ANS=0 while True: if LAST[NOW]==-1: NEXT=defaultValue LAST[NOW]=ANS ANS+=1 else: NEXT=ANS-LAST[NOW] LAST[NOW]=ANS ANS+=1 NOW=NEXT if NOW==query: return ANS break
0 件のコメント:
コメントを投稿