239. Sliding Window Maximum
from collections import deque
class myQue:
def __init__(self):
self.queue = deque()
def pop(self,value):
if self.queue and self.queue[0] == value:
self.queue.popleft()
def push(self,value):
while self.queue and value > self.queue[-1]:
self.queue.pop()
self.queue.append(value)
def front(self):
return self.queue[0]
class Solution:
def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]:
que = myQue()
res = []
for i in range(k):
que.push(nums[i])
res.append(que.front())
for i in range(len(nums)-k):
que.pop(nums[i])
que.push(nums[i+k])
res.append(que.front())
return res
from collections import defaultdict
class Solution(object):
def topKFrequent(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: List[int]
"""
table = defaultdict(int)
for n in nums:
table[n] +=1
t = sorted(table, key = table.get,reverse= True)
return t[:k]