Đầu năm rảnh rỗi, mình ngồi xem tí thuật toán, tiện làm thứ fun & crazy đầu năm: giải bài tập bằng 15 ngôn ngữ hỗ trợ của LeetCode.
Trong này có ngôn ngữ mình học bài bản, có ngôn ngữ mình học mì ăn liền để chơi; có gì sai sót, mong được anh em chỉ bảo
Các ngôn ngữ bao gồm: C++, Java, Python, Python3, C, C#, Javascript, Go, Rust, Ruby, Swift, Kotlin, Scala và PHP.
Đề bài
Link bài gốc: Link
Tóm tắt:
- Đầu vào:
- Số thứ nhất: số lượng chai nước đầy ban đầu
- Số thứ hai: số lượng chai rỗng để đổi được 1 chai đầy
- Mỗi lần có chai nước đầy, uống hết và đếm số chai nước đã uống được. Lấy chai rỗng, đổi lấy chai đầy cho tới khi không đổi được nữa (hết chai rỗng, hoặc số chai rỗng ít hơn số để đổi được chai đầy).
- Đầu ra mong muốn:
- Số lượng chai nước đầy tối đa uống được.
Anh em cứ hiểu đơn giản giống ngày xưa uống nước ngọt, xong đi đổi đồng nát ý. Số lượng lon coca rỗng để đổi được 1 lon coca thật do bác đồng nát quy ước.
Giải thuật
Giải thuật khá đơn giản. Bạn xem sơ đồ sau:
Code
Mình mô tả giải thuật với code Go ở đây
Các ngôn ngữ khác, bạn hãy click vào link này: Link
Cảm ơn bạn, vì đã đọc bài ^^
Pingback: [Base64] Phần 1: Tìm hiểu về nguyên lí hoạt động cùng Hằng béo. | minhphong306