_Gia_Cat_Luong_
Senior Member
Về phần động lực, mình thấy bạn cần nghĩ đến là bạn học thuật toán làm gì ?Mình hiện tại đang rất tuyệt vọng với môn Thuật toán này, không hiểu tại sao mình đã học nó gần cả năm nay mà thấy vẫn không có gì tiến bộ, gặp một tình uống thực sự mình rất bí ý tưởng, mà khi có ý tưởng rồi thì lại rất khó biến ý tưởng thành code. Mình khó khăn nhất là với các bài toán về Quy hoạch động, thật sự là mình chả làm được bài nào nếu không xem hướng dẫn trên Hackerrank. Hôm qua tính làm vài bài để luyện trình mà làm cả buổi sáng cũng không nổi 1 bài, mình rất buồn vì bản thân,
Mình cần lời khuyên của mọi người, chỉ cho mình con đường đi với, mình vẫn cố gắng luyện tập nó hằng ngày mà sao vẫn không khá hơn ???
Bạn có thể tham khảo post này của mình: https://voz.vn/t/hoc-tap-topic-thuat-toan.182659/post-11115169
Maybe chỉ là ý kiến cá nhân của mình thôi, nhưng từ đó bạn có thêm góc nhìn và hiểu được tại sao bạn muốn học thuật toán. Nếu không có mục đích rõ ràng thì việc học sẽ mông lung và rất nhanh nản.
Tuy nhiên điều mình thấy quan ngại là việc bạn không thể biến ý tưởng của mình thành code ? Cái này khiến mình cảm giác phần coding basic của bạn chưa đủ vững. Có thể bạn cần cải thiện thêm về các kỹ năng lập trình cơ bản trước khi nhảy vào mảng thuật toán này ? Vì khả năng chuyển ý tưởng thành code là kỹ năng bắt buộc để luyện LC rồi.
Một trong những cách mình suggest là:
1. Đọc solution của những bài mình không giải được bằng một ngôn ngữ khác trong phần discuss (vd hay làm python thì chọn C++ hoặc java để đọc).
2. Cố gắng hiểu ý tưởng đằng sau.
3. Chạy thử vài whiteboard examples.
4. Sau đó implement lại bằng ngôn ngữ mình thường dùng mà không check với solution mẫu.
Nếu bạn struggle với DP thì cứ filter các bài DP mà làm, chọn bài easy trước rồi tăng dần độ khó.