Puede encontrar en O (N), si agrega la restricción adicional de que cada elemento es único.
Después de encontrar todos los pares x + y == z, sabe que por cada xey que satisfaga esa condición, cada x o y (elija una) que tenga un índice menor que su par satisface la x + y < z condición.
En realidad, seleccionarlos y darles salida tomaría O (n^2), pero en cierto sentido, los pares x + y == z son una forma comprimida de la respuesta, junto con la entrada.
(Puede preprocesar la entrada a un formulario donde cada elemento es único, junto con un contador para el número de ocurrencias. Esto tomaría O (N) tiempo. Puede generalizar esta solución a matrices sin clasificar, aumentando el tiempo hasta O (nlogn).)
La justificación para decir que encontrar los pares en un tiempo linealmente proporcional al tamaño de la solución: Supongamos que la pregunta es "¿cuáles son los enteros que están entre 0 y la entrada K dada?" ?
Aunque estoy completamente de acuerdo con su observación, vea mi comentario sobre nuestra capacidad para definir el "formato" de salida. – ZeDuS