We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
#!/bin/python3importmathimportosimportrandomimportreimportsysfromcollectionsimportdequeclassRunningMedian(object):def__init__(self,maxLen):self.d=[0]*201self.queue=deque()self.maxLen=maxLendefadd(self,v:int)->None:self.queue.append(v)self.d[v]+=1iflen(self.queue)>self.maxLen:val=self.queue.popleft()self.d[val]-=1defmedian(self)->int:a=int(self.maxLen/2)b=a+1mid1=Nonemid2=Noners=0foridx,vinenumerate(self.d):rs+=vifrs>=aandmid1isNone:mid1=idxifrs>=b:mid2=idxbreakifself.maxLen%2==0:return(mid1+mid2)/2.0else:returnmid2# Complete the activityNotifications function below.defactivityNotifications(expenditure,d):notifications=0r=RunningMedian(d)forvinexpenditure[:d]:r.add(v)foridx,vinenumerate(expenditure[d:]):median=r.median()# print(median, expenditure[idx: idx+d])ifv>=(2*median):notifications+=1r.add(v)returnnotificationsif__name__=='__main__':fptr=open(os.environ['OUTPUT_PATH'],'w')nd=input().split()n=int(nd[0])d=int(nd[1])expenditure=list(map(int,input().rstrip().split()))result=activityNotifications(expenditure,d)fptr.write(str(result)+'\n')fptr.close()
Fraudulent Activity Notifications
You are viewing a single comment's thread. Return to all comments →
Equivalent solution in python: