Take and array and remove the first element, keep the next one, remove the third and continue in that way until you have only one element in the array, example:
start with [1,2,3,4,5,6]
remove 1, keep 2, remove 3, keep 4, remove 5, keep 6, remove 2, keep 4, remove 6, then return 4.
- remover [1,2,3] => 2
- remover [1,2,3,4] => 4
- remover [1,2,3,4,5] => 2
- remover [1,2,3,4,5,6] => 4
- remover (1..7) => 2
- remover (1..8) => 8
- remover (1..9) => 6
- remover (1..10) => 4
The input is and array from 1 to 1.000.000 in sequence
time node remover.js
621440
real 0m0.709s
user 0m0.661s
sys 0m0.048stime elixir remover.ex
621440
real 0m1.876s
user 0m1.556s
sys 0m0.457stime ruby remover.rb
621440
real 0m0.423s
user 0m0.386s
sys 0m0.018s