daily log 10.01.20
less than 1 minute read
Naive solution
class RecentCounter(object):
def __init__(self):
self.results = []
def ping(self, t):
"""
:type t: int
:rtype: int
"""
print([t-3000, t])
curr_range = [t-3000, t]
self.results.append(t)
temp = []
for r in self.results:
if curr_range[0] <= r <= curr_range[1]:
temp.append(r)
return len(temp)
# Your RecentCounter object will be instantiated and called as such:
# obj = RecentCounter()
# param_1 = obj.ping(t)
Using a queue
class RecentCounter(object):
def __init__(self):
self.results = []
def ping(self, t):
"""
:type t: int
:rtype: int
"""
# print([t-3000, t])
curr_range = [t-3000, t]
# if self.results:
# print('last', self.results[-1], curr_range[0])
self.results.append(t)
temp = []
# peeking = ''
while (self.results and (self.results[0] < curr_range[0])):
# print(self.results[0], curr_range[0], self.results)
self.results.pop(0)
# print(self.results[0])
for r in self.results:
if curr_range[0] <= r <= curr_range[1]:
temp.append(r)
return len(temp)
# Your RecentCounter object will be instantiated and called as such:
# obj = RecentCounter()
# param_1 = obj.ping(t)