Fraudulent Activity Notifications

  • + 0 comments

    Python solution:

    def activityNotifications(expenditure, d):
        # Write your code here
        notifications=0
        
        current_count=[0 for i in range(max(expenditure)+1)]
        
        for n in expenditure[:d]:
            current_count[n]+=1
        
        for i,e in enumerate(expenditure[d:]):
            
            cum_sum=0
            for j,m in enumerate(current_count):
                cum_sum+=m
                if cum_sum>d//2:
                    median=j
                    break
                elif cum_sum==d/2:
                    for k,l in enumerate(current_count[j+1:]):
                        if l!=0:
                            median=(j+(k+j+1))/2
                            break
                    break
            print(median,e)
            if e>=(2*median):
                notifications+=1
                
            current_count[e]+=1
            current_count[expenditure[i]]-=1
                
                
        return notifications