Búsqueda binaria para la primera aparición de k

Tengo un código que busca en una matriz ordenada y devuelve el índice de la primera aparición de k. Me pregunto si es posible escribir este código usando

while(left<right) 

en lugar de

while(left<=right)

Aquí está el 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;
}

¿Cómo sé cuándo usar left es menor o igual que right, o simplemente usar left es menor que right?

Respuestas a la pregunta(3)

Su respuesta a la pregunta