Diberikan dua rentang bilangan bulat inklusif [x1: x2] dan [y1: y2], di mana x1 ≤ x2 dan y1 ≤ y2, apa cara paling efisien untuk menguji apakah ada tumpang tindih dari kedua rentang?
Implementasi sederhana adalah sebagai berikut:
bool testOverlap(int x1, int x2, int y1, int y2) {
return (x1 >= y1 && x1 <= y2) ||
(x2 >= y1 && x2 <= y2) ||
(y1 >= x1 && y1 <= x2) ||
(y2 >= x1 && y2 <= x2);
}
Tapi saya berharap ada cara yang lebih efisien untuk menghitung ini.
Metode apa yang paling efisien dalam hal operasi paling sedikit.