Dies ist eine Art Frage zur Bearbeitungsentfernung und sehr einfach. Ich bin in diesem Bereich einfach ziemlich hirntot und kann es bisher nicht herausfinden.
Bei einer Reihe von Zahlen, z
[3, 1, 1, 1]
Wie würde man am effizientesten alle Zahlen in dieselbe Zahl verwandeln, mit der minimalen Anzahl von "Zügen"? Mit "Verschieben" ist das Hinzufügen oder Entfernen einer Zahl zu einer Zahl gemeint.
Im obigen Beispiel wären die effizientesten Schritte:
[1, 1, 1, 1]
Dies würde 2 Züge erfordern und die erste Zahl zweimal reduzieren.
Ich kann nicht herausfinden, wie ich das am besten herausfinden kann, wenn man viel größere Arrays mit Hunderten von Zahlen betrachtet.
Ich habe ursprünglich versucht, die gerundete Durchschnittszahl (Summe aller geteilt durch die Länge) zu berechnen und sie dann auf den berechneten Durchschnitt zu reduzieren, aber das obige Beispiel hat dies gebrochen und erfordert 4 Züge anstelle von 2.
Ich könnte mir vorstellen:
- Der Durchschnitt,
- Der Modus,
- Der Median
und ermitteln Sie den Bearbeitungsabstand für jeden von ihnen, indem Sie den Mindestabstand auswählen. Ich bin mir jedoch nicht sicher, ob dies in jedem Fall richtig wäre. Wie kann ich es wissen?