Pesquisa binária para a primeira ocorrência de k

Eu tenho um código que pesquisa uma matriz classificada e retorna o índice da primeira ocorrência de k. Eu estou querendo saber se é possível escrever este código usando

while(left<right) 

ao invés de

while(left<=right)

Aqui está o código completo:

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;
}

Como sei quando usar a esquerda é menor ou igual à direita ou apenas usar a esquerda é menor que a direita.

questionAnswers(3)

yourAnswerToTheQuestion