Interview Question: Store Last N order Ids

This problem was asked by Twitter. You run an e-commerce website and want to record the last N order ids in a log. Implement a data structure to accomplish this, with the following API: record(order_id): adds the order_id to the log get_last(i): gets the ith last element from the log. i is guaranteed to be smaller than or equal to N. You should be as efficient with time and space as possible. Implementation: class LogData:
def __init__(self,size):
self.maxSize = size
self.circularBuffer = [None] * size
self.index = 0

def record(self,orderId):
self.circularBuffer[self.index] = orderId
self.index = (self.index + 1) % self.maxSize

def getLast(self,i):
return self.circularBuffer[
            (self.index - i + self.maxSize)% self.maxSize]

#Size Of Log
data = LogData(5) 
#Giving Input
data.record(5)
data.record(4)
data.record(6)
data.record(9)
data.record(12)
data.record(90)
data.record(120)
#Get the last third order Id
print(data.getLast(3)) #Output Should be 12 Follow us on Instagram @programmersdoor Join us on Telegram @programmersdoor Please write comments if you find any bug in above code/algorithm, or find other ways to solve the same problem Follow Programmers Door for more. #blog #interview #placement #Interview #twitter #MNC #dailycoddingproblem

        Contact Us

programmersdoor@gmail.com

  • LinkedIn
  • Facebook
  • Instagram

©2023 by Programmers Door