Einfach 0 gelöst 0% Erfolgsquote

Min and Max Together

Find the smallest and largest value in one pass.

Das lernst du

  • Minimum und Maximum gemeinsam verfolgen
  • Zwei Werte auf einmal zurückgeben
  • Jedes Element nur einmal besuchen

Problem

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

Einschränkungen

1 ≤ length ≤ 100,000

Beispiele

Beispiel 1
Eingabe:
numbers = [4, -2, 9, 0]

Erwartete Ausgabe:
expected = [-2, 9]
Eingabe:
std::vector<long long> numbers = {4, -2, 9, 0};

Erwartete Ausgabe:
std::vector<long long> expected = {-2, 9};
Eingabe:
long[] numbers = new long[] {4, -2, 9, 0};

Erwartete Ausgabe:
long[] expected = new long[] {-2, 9};

Erläuterung

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

Beispiel 2
Eingabe:
numbers = [7]

Erwartete Ausgabe:
expected = [7, 7]
Eingabe:
std::vector<long long> numbers = {7};

Erwartete Ausgabe:
std::vector<long long> expected = {7, 7};
Eingabe:
long[] numbers = new long[] {7};

Erwartete Ausgabe:
long[] expected = new long[] {7, 7};

Erläuterung

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

So gehst du vor

Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.

Hinweis 1

Verfolge die kleinsten und größten Werte, während du die Liste einmal durchläufst.

Hinweis 2

Aktualisiere dein laufendes Minimum und Maximum, sobald du ein neues Extrem findest.

Hinweis 3

Da die Liste garantiert nicht leer ist, kannst du mit dem ersten Element starten.

Erwartete Komplexität

Zeit O(n), zusätzlicher Speicher O(1)

Referenzen

Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.

Von anderen lernen

Community-Lösungen

Noch keine veröffentlichten Lösungen. Löse die Aufgabe und teile als Erster eine Lösung.