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 件のコメント:
コメントを投稿