Hỏi đúng câu cho thấy bạn nghĩ như engineer thật, không vội code khi đề còn mơ hồ.
- Bộ câu hỏi nên có sẵn trong đầu: input có thể rỗng hay null không; range giá trị (âm, số lớn, overflow); đã sort chưa; có duplicate không; output mong đợi khi không có đáp án; có được mutate input không; quan tâm time hay space hơn; size n cỡ bao nhiêu (vì n=10 và n=10^9 dẫn tới thuật toán khác nhau).
- Việc làm rõ constraint cũng chính là gợi ý cho thuật toán: n nhỏ thì brute force ổn, n lớn thì cần O(n log n) hoặc O(n).