Schwierig 0 gelöst 0% Erfolgsquote

Minimale Aufzüge

Teile Personen in möglichst wenige Aufzugsfahrten mit Gewichtsbeschränkung ein.

Jede Person muss genau einmal fahren. Jede Gruppe kann gemeinsam fahren, wenn die Summe ihrer Gewichte die Kapazität nicht überschreitet. Die Gruppierung der Personen ist beliebig; die Reihenfolge der Eingabe spielt keine Rolle. Minimiere die Anzahl der Fahrten.

Implementiere elevator_rides(weights, capacity).

Eingabe

weights: Das Gewicht jeder Person.

capacity: Das maximal erlaubte Gesamtgewicht pro Fahrt.

Ausgabe

Gib die minimale Anzahl an Fahrten zurück.

Einschränkungen

1 ≤ Personen ≤ 20. 1 ≤ Kapazität ≤ 1.000.000.000. Jedes Gewicht liegt zwischen 1 und Kapazität.

Beispiele

Beispiel 1
Eingabe:
weights = [3, 4, 5]
capacity = 7

Erwartete Ausgabe:
expected = 2
Eingabe:
std::vector<long long> weights = {3, 4, 5};
long long capacity = 7;

Erwartete Ausgabe:
long long expected = 2;
Eingabe:
long[] weights = new long[] {3, 4, 5};
long capacity = 7;

Erwartete Ausgabe:
long expected = 2;

Erläuterung

Schicke 3 + 4 zusammen und 5 einzeln. Das Gesamtgewicht 12 passt nicht in eine Fahrt mit Kapazität 7.

Beispiel 2
Eingabe:
weights = [2, 2, 2]
capacity = 6

Erwartete Ausgabe:
expected = 1
Eingabe:
std::vector<long long> weights = {2, 2, 2};
long long capacity = 6;

Erwartete Ausgabe:
long long expected = 1;
Eingabe:
long[] weights = new long[] {2, 2, 2};
long capacity = 6;

Erwartete Ausgabe:
long expected = 1;

Erläuterung

Alle drei Personen passen zusammen, da 2 + 2 + 2 = 6.

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.