Umgang mit M Vorkommen unter N

Frage, die ich beim Vorstellungsgespräch erhalten habe. Ich war nah an der Lösung, habe sie aber leider nicht gelöst.

Angenommen, wir haben eine Sequenz, die @ enthäN Nummern vom Typlong. Und wir wissen mit Sicherheit, dass in dieser Sequenz jede Zahl genau @ vorkommn mal abgesehen von der einen Zahl, die genau @ vorkomm times 0 < m < n). Wie finden wir diese Nummer mitAUF Operationen undO (1) zusätzlicher Speicher?

Für den einfachsten Fall (wennn = 2 undm = 1) Alles, was wir tun sollten, ist nur akkumulative @ durchzuführxor auf jeder Nummer der Reihe nach. Das Ergebnis entspricht der gewünschten Anzahl. Aber ich stecke fest, während ich versuche, mit willkürlichem @ umzugehem undn.

Ich würde mich über eine aktuelle C ++ - Lösung freuen.

EDIT: Wir kennen die tatsächlichen Werte vonm undn a priori.

Beispiel Wir wissen dasn = 3 undm = 2. Die Sequenz N = 8) ist

5 11 5 2 11 5 2 11

Und die richtige Antwort ist2 in diesem speziellen Fall, weil es nur zweimal vorkommt.

Antworten auf die Frage(16)

Ihre Antwort auf die Frage