Menu
CoddyTech

Ghi nhớ kết quả không dùng đệ quy

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

Trong bài học trước, chúng ta đã tìm hiểu về kỹ thuật ghi nhớ kết quả (memoization) và cách kỹ thuật này giúp cải thiện độ phức tạp thời gian của các lời giải đệ quy. Trong bài học này, chúng ta sẽ khám phá cách dùng đệ quy với kỹ thuật ghi nhớ kết quả để giải quyết vấn đề hiệu quả hơn.

Đệ quy là một kỹ thuật lập trình, trong đó một hàm gọi chính nó để giải quyết vấn đề. Lời giải đệ quy có thể rất tinh tế và trực quan, nhưng cũng có thể kém hiệu quả, đặc biệt khi cùng một hàm được gọi nhiều lần với cùng các đối số. Đây là lúc kỹ thuật ghi nhớ kết quả phát huy tác dụng. Bằng cách lưu kết quả của những lần gọi hàm trước, chúng ta có thể tránh các phép tính dư thừa và cải thiện đáng kể hiệu suất của lời giải đệ quy.

challenge icon

Thử thách

Dễ

Giả sử mỗi lần bạn có thể bước lên 1 bậc hoặc 2 bậc. 

Viết một hàm có tên count_ways, nhận một số nguyên n và trả về số cách để leo cầu thang có n bậc.

Hàm cần dùng kỹ thuật ghi nhớ kết quả để tránh tính toán lặp lại.

Đừng dùng đệ quy trong thử thách này!

Tự làm thử

def count_ways(n):
    # TODO: viết code của bạn ở đâ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