Unexpected Delay Between For Loops
The claim “The cause it that your 3rd led (2nd element in the array) is reapeted twice” is wrong.  

Apparently that sentence is supposed to mean that the long delay is due to i being one too large, coming out of the first loop and entering the second one.  Indeed, i is too large, but that's because each element of the array is a 2-byte int, so that instead of for (int i = 0; i &lt; sizeof(leds); i ++) being equivalent to for (int i = 0; i &lt; 3; i ++), it is equivalent to for (int i = 0; i &lt; 6; i ++).  

Thus, one second goes by with an extra 4 occurrences of delay(250); in the first loop, and another one second with 4 extra occurrences of delay(250); in the other loop.

To correct the problem, write sizeof leds/sizeof leds[0] instead of sizeof(leds), and write for (--i; i &gt; 0; i--) instead of for (i; i &gt; 0; i --).