Phần lớn bug interview rơi vào vài nhóm quen thuộc:
- off-by-one — sai
<vs<=, indexnthay vìn-1, quên phần tử cuối; - null/empty — không xử lý mảng rỗng, list rỗng, hoặc node null;
- quên cập nhật state — không tăng pointer, không reset biến trong vòng lặp dẫn tới infinite loop;
- integer overflow trong Java/C++ (dùng
left + (right-left)/2thay vì(left+right)/2); - mutate input khi không được phép;
- dùng lại cùng phần tử trong bài cần cặp phân biệt
Biết trước danh sách này giúp bạn tự kiểm khi dry-run nhanh hơn.
Most interview bugs fall into a few buckets: off-by-one (< vs <=, index n instead of n-1), null/empty handling, forgetting to update state (no pointer increment, no reset, infinite loops), integer overflow in Java/C++ (use left + (right-left)/2), mutating input when not allowed, and reusing the same element in pair problems.
Knowing this list lets you self-check faster during a dry run.