blog.dopana

Back

Data Structures & Algorithms (DSA) là nền tảng của khoa học máy tính. Không chỉ cho phỏng vấn — nó giúp bạn viết code hiệu quả hơn.

Array#

Linked List#

Stack & Queue#

Hash Table#

Tree#

Graph#

Sorting#

Big O — Time Complexity#

Cấu trúcAccessSearchInsertDelete
ArrayO(1)O(n)O(n)O(n)
StackO(n)O(n)O(1)O(1)
QueueO(n)O(n)O(1)O(1)
Linked ListO(n)O(n)O(1)O(1)
Hash TableO(1)*O(1)*O(1)*O(1)*
BSTO(log n)O(log n)O(log n)O(log n)

Mẹo Phỏng Vấn#

// 1. Brute force trước, optimize sau
// 2. Nói to suy nghĩ (think aloud)
// 3. Edge cases: empty, single element, all same
// 4. Time & space complexity

// Common patterns:
// - Two pointers (sorted array)
// - Sliding window (subarray)
// - Binary search (sorted data)
// - BFS/DFS (tree, graph)
// - Hash map (counting, lookup)
// - Dynamic programming (overlapping subproblems)
typescript

Kết Luận#

DSA là kỹ năng nền tảng. Học theo thứ tự:

  1. Array + Hash Table — hay dùng nhất
  2. Stack + Queue — pattern cơ bản
  3. Linked List — pointer manipulation
  4. Tree + Graph — traversal, recursion
  5. Sorting — divide and conquer

Luyện tập: LeetCode (Easy → Medium), daily challenge. Không cần giải Hard — focus vào pattern recognition.

Tài liệu tham khảo#