1001 Nguồn Học Cấu Trúc Dữ Liệu Và Giải Thuật Hiệu Quả

Trong bài viết này, mình sẽ chia sẻ tất cả các tài nguyên quan trọng mà mình đã theo học về Cấu trúc dữ liệu và Giải thuật (CTDL&GT) trong thời gian qua.

***Nguồn: Anubhav Sinha***

Đầu tiên thì là các trang web. Các trang mà mình follow gồm có:

LeetCode — Trang web tốt nhất để thực hành các câu hỏi CTDL&GT, giao diện người dùng tốt, phần thảo luận tuyệt vời.

GeeksforGeeks — Quá đỉnh cho các bạn sinh viên Khoa học Máy tính, bạn có thể nhận được tất cả các câu hỏi với các giải pháp khả thi và cũng có thể thực hành tại đây.

Techie Delight — Một trang web đơn giản dành riêng cho việc học CTDL&GT.

Một số trang web khác mà bạn có thể tham khảo là InterviewBit và Educative.io.

Dưới đây là tổng hợp một số bài toán CTDL&GT được chọn bởi Striver (take U forward)  và Love Babbar. Về cơ bản, các tài liệu này sẽ giúp bạn giải quyết một số vấn đề đã chọn, giúp nâng cao kỹ năng CTDL&GT của bạn và bạn phải hiểu các khái niệm và lý do tại sao áp dụng cấu trúc dữ liệu hoặc thuật toán cụ thể trong câu hỏi này, nhưng nhớ học từ từ thôi, dục tốc là bất đạt nhé.

  • Striver chứa 180 câu hỏi mà với tốc độ bình thường, bạn có thể hoàn thành trong 2-3 tháng. Nhưng nếu đã có cơ bản về CTD&GT, bạn có thể hoàn thành chỉ trong vòng 1 tháng mà thôi. Link cho sheet câu hỏi cụ thể và video — Striver’s sheetvideo.
  • Love chứa 450 câu hỏi, bạn có thể hoàn thành trong 4-5 tháng hoặc 2-3 tháng đối với những người có căn bản. Link cho bạn: — Love’s sheetvideo.
    Một trang web khá đỉnh để theo dõi tiến độ đống tài liệu trên là 450DSA, sẽ giúp bạn ghi lại lộ trình học và hoàn thiện các câu hỏi.

Nếu bạn đang vội ôn luyện để chuẩn bị phỏng vấn hay thi thố gì đó, bạn nên xem tờ Striver, còn nếu đủ thời gian và rảnh sang thì giải bài ở tờ Love nhé. Cả hai đều đỉnk của đỉnk cả.

Các tài liệu tiếp theo cho mỗi chủ đề trong CTDL&GT sẽ chủ yếu là các video có trên Youtube. Khi xem xong mỗi video, đừng quên thực hành và làm 1 lượng bài tập nhất định liên quan để có thể hiểu một cách kĩ càng và chuyên sâu nhé.

  1. Arrays — Đầu tiên và cực kì quan trọng
    * Khái niệm cơ bản về mảng — Array lectures by Neso Academy (Dành cho ai bắt đầu học từ con số 0 đúng nghĩa)
    * Sliding Window — Aditya Verma
    Sorting — mycodeschool
  2. Greedy — Abdul Bari Sir (từ 3 đến 3.5)
  3. Hashing — Abdul Bari Sir
  4. Stack — Aditya Verma
  5. Queue — Dành cho ai muốn tìm hiểu căn bản: Jenny’s Lecture
  6. Recursion — Aditya Verma
  7. Linked List — Vivekanand Khyade Sir
  8. Binary Trees — Vivekanand Khyade SirKashisk Mehndiratta
  9. Binary Search Trees — mycodeschool
  10. Strings —
    Rabin Karp Algo — Abdul Bari SirTECH DOSE
    KMP Algo — Abdul Bari SirTECH DOSE
  11. Backtracking — Abdul Bari Sir
  12. Binary Search —  Aditya Verma
  13. Dynamic Programming — Aditya Verma (Những bài giảng đỉnh nhất trên Youtube)
  14. Heaps —  Aditya Verma (Nếu muốn học cơ bản, trước hết bạn nên xem hết các video của Abdul Bari Sir)
  15. Graphs —  TECH DOSE (Nếu muốn học cơ bản, trước hết bạn nên xem hết các video của Abdul Bari Sir)
  16. Tries — TECH DOSE

Lưu ý: Đây chỉ là những nguồn tài liệu, từ đó bạn có thể tìm hiểu các chủ đề nhưng nhớ là phải luyện tập nhiều câu hỏi về chủ đề này thì mới có thể nắm được câu lệnh tốt. Và cũng đừng chỉ chăm chăm vào những tài nguyên này, hãy khám phá thêm trên Youtube để tìm được những kênh khác thực sự phù hợp với mình.

Các kênh khác bạn có thể đăng ký:

  1. take U forward
  2. Love Babbar
  3. Aditya Verma
  4. TECH DOSE
  5. Back To Back SWE
  6. Vivekanand Khyade — Algorithm Every Day

Ngoài ra, bạn nên tham gia các cuộc thi ngắn (2-3 giờ) trên Codeforces, Codechef và LeetCode để có thể tự kiểm tra, luyện tập sẽ giúp bạn thông minh hơn, nhạy bén hơn và điều này cũng sẽ giúp bạn vượt qua các vòng code online của nhiều công ty.

Từ kinh nghiệm bản thân, tôi khuyên bạn không nên quá nhồi nhét quá, chỉ cần tìm hiểu các khái niệm và áp dụng chúng cho các câu hỏi, đồng thời nâng cao kiến thức của bạn về CTDL&GT. “Bạn càng thực hành nhiều, bạn càng học được nhiều hơn.” Nếu bạn không thể làm được câu hỏi nào trong các nguồn tôi cung cấp hoặc ở bất kỳ đâu, đừng dễ dàng bỏ cuộc, ít nhất hãy dành 1-2 giờ động não và ngay cả khi bạn không thể giải quyết được thì cũng đừng quá lo lắng. Bạn có thể dễ dàng tìm thấy một số video trên Youtube với các giải thích cực dễ hiểu và bạn cũng có thể tham khảo phần thảo luận trong LeetCode hoặc tham khảo GeeksforGeeks. Dần dần, bạn sẽ hình thành được tư duy và tự mình giải quyết được vấn đề.

Để nghiên cứu các chủ đề chính về Khoa học máy tính như Hệ quản lý cơ sở dữ liệu (Database Management System – DBMS), Hệ điều hành và Mạng máy tính, hãy tham khảo Knowledge Gate and Gate Smashers, GeeksforGeeks.

Về OOP, bạn có thể tham khảo Saurabh Shukla’s sir, C++ playlist.

Ngoài ra, đừng quên ghi chú lại tất cả những điều bạn đã học, nó sẽ giúp bạn ôn tập nhanh chóng bất cứ khi nào bạn muốn.

Hi vọng bài tổng hợp này sẽ giúp ích được cho bạn!

Chúc các bạn học tốt <3.

Tham khảo khóa học lập trình web 6 tháng, đảm bảo 100% công việc đầu ra!

Nguồn: https://codelearn.io/sharing/nguon-hoc-cau-truc-du-lieu-va-giai-thuat

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Tài liệu + Khóa học lập trình FREE
Tài liệu + Khóa học lập trình FREE

DMCA.com Protection Status