Heim >Backend-Entwicklung >PHP-Tutorial >Mindestanzahl an Bällen in einer Tasche
1760. Mindestanzahl an Bällen in einer Tasche
Schwierigkeit:Mittel
Themen:Array, Binäre Suche
Sie erhalten ein ganzzahliges Array nums, wobei der ite Beutel nums[i] Kugeln enthält. Sie erhalten außerdem eine Ganzzahl maxOperations.
Sie können den folgenden Vorgang höchstens in maxOperations-Zeiten ausführen:
Ihre Strafe ist die maximale Anzahl an Bällen in einem Beutel. Sie möchten Ihre Strafe nach den Operationen minimieren.
Geben Sie die minimal mögliche Strafe nach Durchführung der Vorgänge zurück.
Beispiel 1:
Beispiel 2:
Einschränkungen:
Hinweis:
Lösung:
Wir können die binäre Suche verwenden, um die minimal mögliche Strafe zu finden. Die wichtigste Erkenntnis besteht darin, dass wir den Suchbereich mithilfe der binären Suche eingrenzen können, wenn wir feststellen können, ob eine bestimmte Strafe erreichbar ist.
Einrichtung der binären Suche:
Machbarkeitsprüfung:
Iterieren:
Lassen Sie uns diese Lösung in PHP implementieren: 1760. Mindestanzahl an Bällen in einer Tasche
Erläuterung:
Binäre Suche:
- Der Suchraum liegt zwischen 1 und der maximalen Zahl im Nums-Array.
- Der Mittelpunkt stellt die aktuelle Strafe dar, die wir testen.
Machbarkeitsprüfung (canAchievePenalty):
- Berechnen Sie für jeden Beutel die erforderlichen Teilungen, um sicherzustellen, dass alle Beutel mittlere Kugeln oder weniger haben:
- ceil(balls/mid) – 1 gibt die Anzahl der benötigten Teilungen an.
- Wenn die Gesamtzahl der Teilungen maxOperations überschreitet, ist die Strafe nicht durchführbar.
Suchbereich anpassen:
- Wenn die Strafe machbar ist, reduzieren Sie die Obergrenze (hoch = mittel).
- Wenn nicht, erhöhen Sie die Untergrenze (niedrig = Mitte 1).
Ergebnis:
- Wenn die Schleife endet, enthält low die kleinste mögliche Strafe.
Komplexität:
Kontaktlinks
Wenn Sie diese Serie hilfreich fanden, denken Sie bitte darüber nach, dem Repository einen Stern auf GitHub zu geben oder den Beitrag in Ihren bevorzugten sozialen Netzwerken zu teilen? Ihre Unterstützung würde mir sehr viel bedeuten!
Wenn Sie weitere hilfreiche Inhalte wie diesen wünschen, folgen Sie mir gerne:
Das obige ist der detaillierte Inhalt vonMindestanzahl an Bällen in einer Tasche. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!