Tìm vị trí xuất hiện đầu tiên của một giá trị
Dãy điểm kiểm tra được lưu theo đúng thứ tự chỗ ngồi trong lớp, nên dãy không được sắp

Giảm thời gian tìm kiếm từ O(N) xuống O(log N). Kỹ thuật chặt nhị phân kết quả là công cụ cực mạnh để giải quyết các bài toán tối ưu hóa phức tạp.
bài tập có chấm code
Bài tập theo chuyên đề, có đề bài, ví dụ và starter code riêng.
cơ bản
Củng cố nền tảng và làm quen với kỹ thuật cốt lõi.
trung bình
Kết hợp nhiều bước suy luận để vận dụng kiến thức.
nâng cao
Thử thách tối ưu, cấu trúc dữ liệu và thuật toán chuyên sâu.
Cài đặt chính xác không bị lặp vô tận, kiểm tra mảng sắp xếp.
Tìm vị trí đầu tiên hoặc cuối cùng của phần tử thỏa mãn điều kiện.
Kiểm tra tính đơn điệu của hàm điều kiện f(x) để tìm nghiệm tối ưu.
Tính (low + high) / 2 có thể gây tràn số nguyên (cần viết low + (high - low) / 2).
Điều kiện dừng low <= high bị lặp vô hạn do cập nhật mid thay vì mid + 1 / mid - 1.
Trong mỗi mức độ, bài tập được xếp từ dễ nhất đến khó nhất — hãy đi theo số bước.
Nhập xuất, biến, rẽ nhánh và các bước suy luận đơn giản.
Dãy điểm kiểm tra được lưu theo đúng thứ tự chỗ ngồi trong lớp, nên dãy không được sắp
Một giá trị có thể lặp lại nhiều lần trong dãy dữ liệu thô. Câu hỏi "giá trị này xuất hiện
Dữ liệu thô thường được in lại theo thứ tự tăng dần để so sánh bằng mắt. Yêu cầu ở đây gồm
Dãy đã được sắp xếp tăng dần, nên ta không cần quét từng phần tử. Mỗi lần so sánh với phần
Vòng lặp, mảng một chiều, chuỗi và hàm ở mức cơ bản.
Khi tra cứu ngưỡng trong một bảng đã sắp xếp, ta thường cần giá trị nhỏ nhất còn lớn hơn
Trong một dãy ngắn, câu hỏi "có bao nhiêu cặp số cộng lại đúng bằng một mốc cho trước"
Khi cấp phát số thứ tự cho một tập dữ liệu nhỏ, ta muốn tìm số thứ tự còn trống đầu tiên để
Dùng một kỹ thuật quen thuộc: sắp xếp, tìm kiếm, đếm, ngăn xếp.
Cho số nguyên dương N. Hãy liệt kê tất cả các hoán vị của tập hợp {1, 2, …, N} theo thứ tự từ điển tăng dần.
Tìm kiếm tuyến tính quét cả mảng nên tốn O(N). Với dữ liệu đã sắp xếp, mỗi bước loại được một nửa không gian tìm kiếm và đưa chi phí xuống O(log N).
Một người đốn gỗ cần thu hoạch ít nhất M mét gỗ từ một hàng gồm N cây gỗ có chiều cao lần lượt là H1, H2, …, HN.
Người nông dân có N chuồng bò nằm trên một trục thẳng tại các tọa độ X1, X2, …, XN. Anh ta cần đưa C con bò vào C chuồng khác nhau sao cho khoảng cách giữa hai con bò gần nh…
Có N tấm bảng được xếp thành một hàng, tấm thứ i có độ dài Li. Có K người thợ sơn cần sơn toàn bộ N tấm bảng này.
Cho một bảng cửu chương kích thước M × N, trong đó giá trị tại hàng i và cột j (1 ≤ i ≤ M, 1 ≤ j ≤ N) là i · j.
Phối hợp hai kỹ thuật trong cùng một lời giải.
Cho một mảng gồm N số nguyên A1, A2, …, AN và một số nguyên K (1 ≤ K ≤ N). Hãy tìm giá trị của phần tử sẽ đứng ở vị trí thứ K nếu mảng được sắp xếp theo thứ tự không giả…
Cho một dãy gồm N số nguyên A1, A2, …, AN.
Cho một bảng Sudoku kích thước 9 × 9, trong đó các ô trống được biểu diễn bằng số 0.
Tìm kiếm nhị phân (Binary Search) là một trong những thuật toán cơ bản và hiệu quả nhất trong lập trình thuật toán. Thuật toán hoạt động theo nguyên lý chia để trị (Divide and Conq…
Trung tâm siêu máy tính AI Empire Academy có N gói tác vụ huấn luyện mô hình ngôn ngữ xếp thành một hàng dài, gói thứ i có khối lượng tính toán là Ai (1 ≤ N ≤ 105, 1 ≤ Ai…
Hệ thống lên lịch thực thi song song của AI Empire Academy cần lập lịch chạy N tác vụ được đánh số từ 1 đến N (1 ≤ N ≤ 9).
Cho hai mảng đã sắp xếp tăng dần A (gồm N phần tử) và B (gồm M phần tử). Hãy tìm giá trị trung vị của mảng hợp nhất A ∪ B.
Cho hai mảng số nguyên A và B đã được sắp xếp theo thứ tự tăng dần, kích thước lần lượt là N và M.
Cho một bàn cờ vua kích thước N × N. Bạn cần đặt N quân hậu lên bàn cờ sao cho không có hai quân hậu nào tấn công lẫn nhau (tức là không có hai quân hậu nào cùng hàng, cùng cộ…