Mô phỏng thuật toán Lớn nhất cửa sổ trượt

Sliding Window Maximum · Nhóm: Ngăn xếp & Hàng đợi

Lớn nhất cửa sổ trượt (Sliding Window Maximum), nhóm Ngăn xếp & Hàng đợi.

Mã Python

def max_sliding_window(a, k):
    q = []  # chi so, gia tri giam dan
    res = []
    for i in range(len(a)):
        while q and a[q[-1]] <= a[i]:
            q.pop()
        q.append(i)
        if q[0] <= i - k:
            q.pop(0)
        if i >= k - 1:
            res.append(a[q[0]])
    return res

Mở trang để xem mô phỏng từng bước và xuất slide bài giảng.