Torna alle sfide
Facile 0 risolte 0% di accettazione

Min and Max Together

Find the smallest and largest value in one pass.

Cosa imparerai

  • Tenere traccia insieme di minimo e massimo
  • Restituire due valori insieme
  • Visitare ogni elemento una sola volta

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].

Vincoli

1 ≤ length ≤ 100,000

Esempi

Esempio 1
Input:
numbers = [4, -2, 9, 0]

Output atteso:
expected = [-2, 9]
Input:
std::vector<long long> numbers = {4, -2, 9, 0};

Output atteso:
std::vector<long long> expected = {-2, 9};
Input:
long[] numbers = new long[] {4, -2, 9, 0};

Output atteso:
long[] expected = new long[] {-2, 9};

Spiegazione

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

Esempio 2
Input:
numbers = [7]

Output atteso:
expected = [7, 7]
Input:
std::vector<long long> numbers = {7};

Output atteso:
std::vector<long long> expected = {7, 7};
Input:
long[] numbers = new long[] {7};

Output atteso:
long[] expected = new long[] {7, 7};

Spiegazione

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

Come affrontarlo

Prova prima da solo, poi apri un suggerimento alla volta.

Suggerimento 1

Tieni traccia del valore più piccolo e di quello più grande mentre scorri la lista una sola volta.

Suggerimento 2

Aggiorna minimo e massimo corrente ogni volta che vedi un nuovo estremo.

Suggerimento 3

Dato che la lista è garantita non vuota, puoi partire dal primo elemento.

Complessità attesa

tempo O(n), spazio aggiuntivo O(1)

Riferimenti

Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.

Impara dagli altri

Soluzioni della community

Nessuna soluzione pubblicata. Risolvi questa sfida per condividere la prima.