#Task: Maxcounters
個人の感想です。
##①Speed N*M
def solution(N, A):
anslist = [0] * N
maxvalue = 0
for i in A:
try:
anslist[i-1] += 1
except:
maxvalue = max(anslist)
anslist = [maxvalue] * N
return anslist
#####感想と学び
毎回tryの中でmaxやるとN2になってしまうと思ったので、
必要な時だけ限定してmaxすることを試みた。が、当然ながらN+1の登場頻度に依存してしまうのでNMになるよなと。納得。
##②Speed: N+M
def solution(N, A):
anslist = [0] * N
maxchecker = 0
for i in A:
try:
anslist[i-1] += 1
if anslist[i-1] > maxchecker:
maxchecker = anslist[i-1]
except:
anslist = [maxchecker] * N
return anslist
感想と学び:なんでN +M ???わからない。。。要検討。そしてspeed N or Log(N)にたどり着けていない。