Cách tránh lỗi là chọn một convention rõ ràng rồi giữ invariant tới cuối.
- Với inclusive boundary
[left, right], loop làwhile (left <= right), nếumidquá nhỏ thìleft = mid + 1, nếu quá lớn thìright = mid - 1. - Không update
left = midhoặcright = midtrong convention này vì có thể đứng yên khi còn 1-2 phần tử. - Tính
mid = left + Math.floor((right - left) / 2)để tránh overflow trong Java/C++. - Với bài tìm lower_bound/answer space, hãy định nghĩa predicate monotonic và quyết định cuối cùng trả
lefthayrighttrước khi code.