È possibile trovare in O (N), se si aggiunge il vincolo aggiuntivo che ciascun elemento è univoco.
Dopo aver trovato tutte le coppie x + y == z, si sa che per ogni x e y che soddisfa tale condizione, ogni x o y (scegline uno) che si trova ad un indice inferiore rispetto alla sua coppia soddisfa la x + y < z condizioni.
In realtà, la selezione di questi e la loro uscita richiederebbe O (n^2), ma in un certo senso, le coppie x + y == z sono una forma compressa della risposta, insieme all'input.
(È possibile preelaborare l'input in un modulo in cui ogni elemento è univoco, insieme a un contatore per il numero di occorrenze. Ciò richiederebbe il tempo O (N). È possibile generalizzare questa soluzione agli array non ordinati, aumentando il tempo di O (nlogn).)
La giustificazione per dire che trovare le coppie in un tempo linearmente proporzionale alla dimensione della soluzione: Supponiamo che la domanda sia "quali sono gli interi tra 0 e l'ingresso dato K" ?
Mentre sono completamente d'accordo con la tua osservazione, vedi il mio commento riguardo alla nostra capacità di definire il "formato" di output. – ZeDuS