Zitat:
Code:
if (rest > idx) {
rest--;
r++;
}
Das ist doppelt. Entweder du prüfst rest > idx und lässt den Wert von rest in Frieden, oder du dekrementierst rest, vergleichst dann aber auf Null und nicht auf idx.
Zweitens verwendest du offensichtlich einen falschen Wert für s, da du nur start korrigierst.