Заявление необходимо в таких ситуациях. @MattTimmermans
я есть код, который ищет отсортированный массив и возвращает индекс первого вхождения k. Мне интересно, возможно ли написать этот код, используя
while(left<right)
вместо
while(left<=right)
Вот полный код:
public static int searchFirstOfK(List<Integer> A, int k) {
int left = 0, right = A.size() - 1, result = -1;
// A.subList(left, right + 1) is the candidate set.
while (left <= right) {
int mid = left + ((right - left) / 2);
if (A.get(mid) > k) {
right = mid - 1;
} else if (A.get(mid) == k) {
result = mid;
// Nothing to the right of mid can be the first occurrence of k.
right = mid - 1;
} else { // A.get(mid) < k
left = mid + 1;
}
}
return result;
}
Как узнать, когда использовать left меньше или равно right, или просто использовать left меньше, чем right.