Algorithms
Data structures and algorithmsCấu trúc dữ liệu và thuật toán
A practical reference for data structures, common problem-solving patterns and selected LeetCode problems. I keep the reasoning, trade-offs and edge cases here - the parts that are easy to forget when you only look at accepted code.Khu ghi chép thực hành về cấu trúc dữ liệu, các pattern giải bài thường gặp và một số bài LeetCode chọn lọc. Mình lưu lại cách suy luận, trade-off và edge case - những thứ rất dễ quên nếu chỉ nhìn vào đoạn code đã AC.
Study guidesDanh sách study guide
0/18 writtenđã viết- ArrayHighCaoPlannedSắp có
- StringHighCaoPlannedSắp có
- Hash TableHighCaoPlannedSắp có
- Sorting & Binary SearchHighCaoPlannedSắp có
- MatrixMediumVừaPlannedSắp có
- Linked ListMediumVừaPlannedSắp có
- Stack & QueueHighCaoPlannedSắp có
- TreeHighCaoPlannedSắp có
- GraphHighCaoPlannedSắp có
- Heap / Priority QueueMediumVừaPlannedSắp có
- TrieMediumVừaPlannedSắp có
- IntervalsMediumVừaPlannedSắp có
- Two PointersHighCaoPlannedSắp có
- Sliding WindowHighCaoPlannedSắp có
- BacktrackingHighCaoPlannedSắp có
- Dynamic ProgrammingMediumVừaPlannedSắp có
- Bit ManipulationLowThấpPlannedSắp có
- MathLowThấpPlannedSắp có
Priority only reflects how often I expect a topic to be useful as a general problem-solving tool. It is not a fixed interview curriculum.Priority chỉ thể hiện mức độ mình kỳ vọng chủ đề đó hữu ích như một công cụ giải bài nói chung. Đây không phải curriculum phỏng vấn cố định.
LeetCode
LeetCode notes live here as worked examples. The goal is to preserve the path from a naive idea to the final solution, including alternatives when they are useful.Các bài LeetCode nằm ở đây như những ví dụ đã giải. Mục tiêu là giữ lại đường suy luận từ ý tưởng ban đầu tới lời giải cuối, kèm alternative khi chúng thực sự hữu ích.
No solutions published yet.Chưa có lời giải nào được đăng.
What each guide coversMỗi study guide sẽ có gì
- A short mental model and when the structure or technique is useful.
- Core operations and time / space complexity.
- Common implementation patterns.
- Edge cases and mistakes worth checking.
- A small set of practice problems with reasoning notes.
- Mental model ngắn gọn và khi nào cấu trúc hoặc kỹ thuật đó hữu ích.
- Các phép toán chính cùng time / space complexity.
- Những pattern implementation thường gặp.
- Edge case và lỗi hay mắc cần kiểm tra.
- Một nhóm bài luyện tập nhỏ kèm ghi chú cách suy luận.
How I approach a problemCách mình tiếp cận một bài toán
- Clarify the input, output, constraints and assumptions before choosing a technique.
- Start with the simplest correct idea, then identify the actual bottleneck.
- Choose the data structure because of the operations the problem needs, not because it looks familiar.
- After coding, test boundary cases and state the time and space complexity explicitly.
- Làm rõ input, output, constraint và assumption trước khi chọn kỹ thuật.
- Bắt đầu từ lời giải đúng đơn giản nhất rồi mới xác định bottleneck thực sự.
- Chọn data structure dựa trên các operation bài toán cần, không phải vì nó trông quen mắt.
- Sau khi code, test boundary case và tự nói rõ time / space complexity.