Menu
CoddyTech

Tối ưu hóa bộ nhớ

Bài học 12 trên 15 trong khóa học Nhập môn quy hoạch động của Coddy.

Trong quy hoạch động, chúng ta thường dùng bảng hoặc ma trận để lưu lời giải cho các bài toán con. Tuy nhiên, trong một số trường hợp, bảng có thể quá lớn và tiêu tốn quá nhiều bộ nhớ. Đây là lúc kỹ thuật tối ưu hóa bộ nhớ phát huy tác dụng. Các kỹ thuật tối ưu hóa bộ nhớ giúp giảm lượng bộ nhớ cần thiết để giải một bài toán quy hoạch động.

Một kỹ thuật tối ưu hóa bộ nhớ phổ biến là dùng mảng cuộn, còn gọi là mảng trượt. Thay vì lưu toàn bộ bảng, ta chỉ lưu một phần của bảng tại mỗi thời điểm và loại bỏ các giá trị trước đó khi tính các giá trị mới. Cách này có thể giảm đáng kể lượng bộ nhớ cần thiết để giải bài toán.

challenge icon

Thử thách

Khó

Trong thử thách này, bạn được cho một mảng số nguyên. Nhiệm vụ của bạn là tìm độ dài của dãy con tăng dài nhất (LIS) trong mảng. Dãy con tăng là một dãy số trong mảng, trong đó mỗi số lớn hơn số đứng trước nó. LIS là dãy con tăng dài nhất như vậy. Bạn phải triển khai lời giải bằng kỹ thuật tối ưu hóa bộ nhớ.

Tự làm thử

def lis_length(arr):
    # Viết code ở đây

Tất cả bài học trong Nhập môn quy hoạch động

Tự luyện tập: Trình biên dịch Python online