# [Tên bài](https://leetcode.com/<link-đề-bài>) # 1. Tóm tắt đề bài > *Theo ý hiểu của bạn, **tóm gọn đề bài** nhất có thể. Có thể thêm giải thích cho những định nghĩa thành một đoạn riêng (chẳng hạn: substring)* ### Giới hạn > *Trong phần giới hạn, sử dụng các cú pháp LaTeX để biểu diễn biểu thức Toán học, chẳng hạn:* > > $1 \le n \le 100$ > > $1 \le A_i \le 100$ --> thể hiện ở trang bên phải > > *Các bạn có thể tra thêm cú pháp ở [trang web này](https://math.meta.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference).* # 2. Tóm tắt lời giải **Độ phức tạp dự tính: $O(f(n))$** > *Đối với một số bài, có thể tóm tắt chỉ bằng 1 câu. Chẳng hạn: "Sử dụng Backtracking để duyệt qua tất cả các tập con của mảng.", hoặc "Tìm kiếm nhị phân hai lần."* > > *Một số bài khác, có thể dẫn dắt từ cảm quan (intuition), hoặc từ thuật trâu nào đó, xong mới chốt tóm tắt bằng 1 câu hướng dẫn cải tiến.* # 3. Lời giải chi tiết > *Viết chi tiết các bước làm, có thể lồng ghép các đoạn code bằng logic.* > *Chẳng hạn:* > ```cpp > int x = 0; > for (int y: nums) x ^= y; > return x; // x chính là số duy nhất xuất hiện một lần trong nums. > ``` > *Các bổ đề Toán học có thể sẽ phải chứng minh nếu nó còn mới. Cố gắng hạn chế những ngộ nhận, hoặc tham lam trong bài.* ### Độ phức tạp thuật toán Thời gian: $O(n)$ Bộ nhớ mở rộng: $O(1)$ > *Lưu ý, ta sẽ chỉ tính độ phức tạp của bộ nhớ mở rộng (Auxiliary Space), vì đây là điểm nhiều người phỏng vấn sẽ yêu cầu tối ưu rất nhiều.* # 4. Kết luận & Gợi ý mở rộng > *Bạn rút ra kết luận thế nào?* > > *Gợi ý các bạn đọc các bài toán mở rộng. Chẳng hạn:* > [15. 3Sum](https://leetcode.com/problems/3sum/) > [16. 3Sum Closest](https://leetcode.com/problems/3sum-closest/)