Besprechen Sie ein Problem mit einer Binärzahl. Wir müssen ein wenig davon entfernen, damit die verbleibende Anzahl unter allen anderen Optionen wie
Input : N = 1011 Output: 111 Explanation: We need to remove one bit so removing 0 bit will give a maximum number than removing any 1’s bit. 111 > 101, 011. Input: 111 Output: 11 Explanation: Since all the bits are 1 so we can remove any bit.
Brute-Force-Methode das Maximum sein sollte. Brute-Force-Methode liefert die maximale Anzahl an Ergebnissen, d. h. nach und nach Entfernen Vergleichen Sie verschiedene Ergebnisse und erzielen Sie maximale Ergebnisse.
Aber es kann mit einem effizienten Ansatz erreicht werden, das heißt, wenn wir die minimal redundanten Bits entfernen.
Effiziente Methoden haben minimale Auswirkungen auf die Ergebnisse.
Beginnen Sie zunächst von rechts und gehen Sie die einzelnen Teile durch.
Suchen Sie nach 0 und löschen Sie sie im ersten Zähler.
Wenn 0 nicht gefunden wird, entfernen Sie alle Bits. ??
Die Schleife läuft bis n-1, da wir ein Element weniger als die ursprüngliche Zahl speichern müssen.
Das obige ist der detaillierte Inhalt vonEntfernen Sie in C++ ein Bit einer Binärzahl, um den Maximalwert zu erhalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!