2275. Größte Kombination mit bitweisem UND größer als Null
Schwierigkeit:Mittel
Themen:Array, Hash-Tabelle, Bitmanipulation, Zählen
Das bitweise UND eines Arrays nums ist das bitweise UND aller ganzen Zahlen in nums.
Sie erhalten eine Reihe positiver Ganzzahlkandidaten. Bewerten Sie das bitweise UND jeder Kombination der Anzahl der Kandidaten. Jede Zahl in Kandidaten darf in jeder Kombination nur einmal verwendet werden.
Gibt die Größe der größten Kombination von Kandidaten mit einem bitweisen UND größer als 0 zurück.
Beispiel 1:
Beispiel 2:
Einschränkungen:
Hinweis:
Lösung:
Wir müssen uns auf die Identifizierung von Zahlengruppen konzentrieren, bei denen mindestens eine Bitposition in ihrer binären Darstellung über alle Zahlen in der Kombination hinweg gesetzt (1) bleibt.
Bitanalyse: Da jede Zahl in Kandidaten durch eine Binärzahl mit bis zu 24 Bits dargestellt werden kann (als 1 <= Kandidaten[i] <= 10^7), Wir müssen nur jede Bitposition von 0 bis 23 untersuchen.
Zähle gesetzte Bits an jeder Position: Zählen Sie für jede Bitposition, wie viele Zahlen in Kandidaten dieses Bit auf 1 gesetzt haben. Wenn mehrere Zahlen ein Bit an derselben Position teilen, könnten sie dies tun Bilden Sie möglicherweise eine Kombination mit einem bitweisen UND größer als Null an dieser Bitposition.
Finden Sie die größte Anzahl: Die größte Anzahl von Zahlen mit einem gesetzten Bit an einer bestimmten Position ist die Antwort, da sie die größtmögliche Kombination darstellt, bei der das bitweise UND-Ergebnis größer als ist Null.
Kandidaten berücksichtigen = [16, 17, 71, 62, 12, 24, 14]:
Lassen Sie uns diese Lösung in PHP implementieren: 2275. Größte Kombination mit bitweisem UND größer als Null
Erläuterung:
- Jede Bitposition durchlaufen: Wir durchlaufen jede Bitposition von 0 bis 23.
- Zahlen mit gesetztem Bit zählen: Zählen Sie für jede Position, wie viele Zahlen in Kandidaten dieses bestimmte Bit gesetzt haben.
- Maximale Kombinationsgröße aktualisieren: Verfolgen Sie die höchste Anzahl über alle Bitpositionen hinweg.
- Ergebnis zurückgeben: Das Ergebnis ist die größte Kombinationsgröße mit einem bitweisen UND größer als Null, je nach Bedarf.
Komplexitätsanalyse
Dieser Ansatz ist effizient genug, um die Eingabegrößenbeschränkung (candidates.length <= 105) zu bewältigen.
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 vonGrößte Kombination mit bitweisem UND größer als Null. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!