Peinlich - ich habe ein Gleichheitszeichen vergessen:
Delphi-Quellcode:
// ...
// calculate result
for i := High(seq) downto 0 do
begin
if (i = High(seq)) or (rng[i] >= maxRange) then // muss natürlich >= sein !
// ...
Code:
seq: m m r t f f f
cnt: 1 2 1 1 1 2 3
rev: 2 1 1 1 3 2 1
rng: 6 4 3 2 3 2 1
res: m m r f f f f
Und immer noch O(n). Den Hintergrund magst du nicht aufdecken? Schade.
marabu