- vừa được xem lúc

Hành trình giải 555 bài LeetCode

0 0 11

Người đăng: Henry Techie

Theo Viblo Asia

Hành trình bắt đầu

Có lẽ nhiều bạn không còn xa lạ gì với nền tảng LeetCode, một nơi để anh em giải những bài thuật toán, chuẩn bị cho vòng coding interview vào các công ty, thường là các công ty nước ngoài và một số ít công ty ở Việt Nam.

Mình cũng đã bắt đầu hành trình của mình như vậy, đơn giản chỉ để chuẩn bị cho buổi phỏng vấn. Mình nhận thấy rằng việc làm quen với các bài lập trình trên LeetCode không chỉ giúp mình cải thiện kỹ năng coding mà còn giúp mình tự tin hơn khi đối mặt với các câu hỏi phỏng vấn liên quan đến thuật toán và cấu trúc dữ liệu.

Mình bắt đầu giải các bài tập theo từng chủ đề. Điều này giúp mình hệ thống hóa kiến thức và nắm vững từng dạng bài hơn. Bằng cách tập trung vào một chủ đề nhất định, mình có thể hiểu sâu hơn và giải quyết các bài toán một cách hiệu quả hơn. Mình vốn không phải dân chuyên Tin, hồi sinh viên cũng không tham gia các kỳ thi về thuật toán, nên dù các dạng bài về BFS, DFS, Hash Table, Stack, Queue... có thể giải ổn, nhưng gặp mấy bài kiểu Dynamic Programming, Union Find thì giai đoạn ban đầu cũng loay hoay ra phết. Nhưng rồi "trăm hay không bằng tay quen", cứ giải khoảng chục bài là bạn sẽ quen tay ngay. Sau giai đoạn đầu này, mình giải được khoảng hơn 100 bài, mình thấy tầm ấy cũng đủ để đi phỏng vấn một vài công ty mà họ hỏi ở mức độ easy-medium.

Duy trì như một niềm vui

Sau khi đã vượt qua được buổi phỏng vấn và vào được một công ty ưng ý, mình bẵng đi khoảng 1 năm không làm nữa. Nhưng sau đó, vào một ngày đẹp trời, mình lại có có hứng vào làm tiếp. Trong giai đoạn 2 này, mình duy trì giải các bài toán trên LeetCode như một niềm vui hàng ngày. Mình dành khoảng 30 phút mỗi ngày để giải một bài trong Daily Coding Challenge. Điều này không chỉ giúp mình giữ vững kỹ năng giải thuật toán mà còn là cách thư giãn và thử thách bản thân. Thêm nữa, giải random kiểu này, bạn sẽ không biết trước chủ đề của bài hôm nay là gì, nó sát với thực tế khi bạn đi phỏng vấn hơn.

Mình cũng thường đặt mốc 30 phút, nếu chưa nghĩ ra cách giải thì vào đọc Editorial (phần giải của chính LeetCode) xem họ giải như nào, rồi sau đó tự nhớ và code lại. Sau mỗi bài, dù là tự giải hay đọc Editorial, mình cũng vào phần Solutions để xem cách giải của những tay to khác, những cái mà được cộng đồng vote nhiều nhất. Họ thường có những cách rất sáng tạo, đôi khi hay hơn cả cách giải của LeetCode.

Các cụ có câu "Muốn đi nhanh thì đi một mình, muốn đi xa thì đi cùng nhau", vậy nên để có người đồng hành và trao đổi kinh nghiệm, mình thường lên diễn đàn voz để thảo luận với anh em. Việc này không chỉ giúp mình có thêm động lực mà còn học hỏi được nhiều cách giải quyết khác nhau từ cộng đồng. Để duy trì động lực, mình cũng đặt mục tiêu cụ thể là đạt 6000 points để nhận được áo LeetCode. Việc đặt mục tiêu rõ ràng giúp mình có thêm động lực và lý do để tiếp tục mỗi ngày.

Đạt được mục tiêu và Quyết định dừng lại

Sau khi duy trì trong khoảng 1 năm rưỡi thì đến ngày 26/7/2024 vừa rồi, mình cũng đạt được mục tiêu 6000 points và đổi được áo.

Tuy nhiên, đợt này công việc cũng bận rộn hơn nên mình quyết định dừng lại một thời gian để nghỉ ngơi và tập trung vào công việc hiện tại. Điều đặc biệt là số bài giải được cũng vừa tròn 555 bài. Chắc là tín hiệu từ vũ trụ rồi.

Hồi trước làm việc với các bạn Thái Lan mới biết số 555 trong tiếng Thái đồng âm với điệu cười Hahaha. Tín hiệu vũ trụ này cũng hay ho phết nhỉ.

Việc tạm dừng không có nghĩa là từ bỏ, trong tương lai khi có hứng thú hoặc cần chuẩn bị cho những công ty yêu cầu thuật toán ở mức độ cao hơn, mình sẽ quay lại giải tiếp. Hành trình giải 555 bài LeetCode đã giúp mình rất nhiều trong việc cải thiện kỹ năng lập trình và tư duy logic.

Chúc các bạn một tuần mới đầy năng lượng!

🔔 Blog: henrytechie.xyz

☕️ Facebook: Henry Techie

☁️ TikTok: @henrytechie

Bình luận

Bài viết tương tự

- vừa được xem lúc

Thuật toán quay lui (Backtracking)

Quay lui là một kĩ thuật thiết kế giải thuật dựa trên đệ quy. Ý tưởng của quay lui là tìm lời giải từng bước, mỗi bước chọn một trong số các lựa chọn khả dĩ và đệ quy.

0 0 49

- vừa được xem lúc

Các thuật toán cơ bản trong AI - Phân biệt Best First Search và Uniform Cost Search (UCS)

Nếu bạn từng đọc các thuật toán trong AI (Artificial Intelligence - Trí tuệ nhân tạo), rất có thể bạn từng nghe qua về các thuật toán tìm kiếm cơ bản: UCS (thuộc chiến lược tìm kiếm mù) và Best First Search (thuộc chiến lược tìm kiếm kinh nghiệm). Khác nhau rõ từ khâu phân loại rồi, thế nhưng hai th

0 0 168

- vừa được xem lúc

Sử dụng vector trong lập trình C++ - giải bài toán lập trình muôn thủa

Chào buổi tối mọi người, hôm nay lang thang trên mạng bắt gặp bài toán quen thuộc một thời của quãng đường sinh viên IT. Đấy chính là câu số 1 trong đề thi dưới đây:.

0 0 53

- vừa được xem lúc

MÔ PHỎNG THUẬT TOÁN VƯƠNG HẠO TRONG PROLOG

. 1. Các luật suy diễn trong thuật toán Vương Hạo. Luật 1: Chuyển vế các giả thuyết và kết luận ở dạng phủ định. Ví dụ: p v q, !(r ^ s), !q, p v r -> s, !p <=> p v q, p v r, p -> s, r ^ s, q.

0 0 89

- vừa được xem lúc

A* Search Algorithm

What is A* Search Algorithm. How it works. . Explanation.

0 0 58

- vừa được xem lúc

Python: Jump Search

Search là một từ khóa khá là quen thuộc đối với chúng ta. Hiểu theo đúng nghĩa đen của nó chính là "Tìm kiếm".

0 0 49