Pregunta de entrevista de Amazon

Not difficult question. Retrieve max three elements in an array in O(n)

Respuesta de la entrevista

Anónimo

18 ene 2015

//Retrieve max three elements in an array in O(n) public static int[] threeMax(int[] arr) { int[] maxes = new int[3]; for (int i = 0; i maxes[0] && arr[i] > maxes[1] && arr[i] > maxes[2]) { // push 2nd, 3rd largest maxes[2] = maxes[1]; maxes[1] = maxes[0]; // save the largest maxes[0] = arr[i]; } else if (arr[i] maxes[1] && arr[i] > maxes[2]) { // push 2nd maxes[2] = maxes[1]; // save the 2nd largest maxes[1] = arr[i]; } else if (arr[i] maxes[2]) { // save the 3rd largest maxes[2] = arr[i]; } } return maxes; }