Volver a los desafíos
Fácil 0 resueltos 0% de aceptación

Min and Max Together

Find the smallest and largest value in one pass.

Lo que aprenderás

  • Seguir a la vez el mínimo y el máximo
  • Devolver dos valores a la vez
  • Visitar cada elemento una sola vez

Problema

Walk through the list once and track both the smallest and the largest value.

Implement min_and_max(numbers).

Input

numbers: A non-empty list of integers.

Output

Return [smallest, largest].

Restricciones

1 ≤ length ≤ 100,000

Ejemplos

Ejemplo 1
Entrada:
numbers = [4, -2, 9, 0]

Salida esperada:
expected = [-2, 9]
Entrada:
std::vector<long long> numbers = {4, -2, 9, 0};

Salida esperada:
std::vector<long long> expected = {-2, 9};
Entrada:
long[] numbers = new long[] {4, -2, 9, 0};

Salida esperada:
long[] expected = new long[] {-2, 9};

Explicación

The smallest value is -2 and the largest is 9: [-2, 9].

Ejemplo 2
Entrada:
numbers = [7]

Salida esperada:
expected = [7, 7]
Entrada:
std::vector<long long> numbers = {7};

Salida esperada:
std::vector<long long> expected = {7, 7};
Entrada:
long[] numbers = new long[] {7};

Salida esperada:
long[] expected = new long[] {7, 7};

Explicación

With one value it is both the smallest and largest: [7, 7].

Cómo abordarlo

Inténtalo primero por tu cuenta y luego abre las pistas una a una.

Pista 1

Lleva el seguimiento del valor más pequeño y del más grande mientras recorres la lista una sola vez.

Pista 2

Actualiza tu mínimo y máximo actuales cuando veas un nuevo extremo.

Pista 3

Como la lista no está vacía, puedes empezar con su primer elemento.

Complejidad esperada

tiempo O(n), espacio extra O(1)

Referencias

Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.