Inversión de un segmento

Escribe una función que invierta el subarreglo comprendido entre los índices inicial y final (ambos incluidos). El resto del arreglo debe permanecer igual.

Ejemplos

Program.RangedReversal(new[] { 1, 2, 3, 4, 5, 6 }, 1, 3); // new[] { 1, 4, 3, 2, 5, 6 }
Program.RangedReversal(new[] { 1, 2, 3, 4, 5, 6 }, 0, 4); // new[] { 5, 4, 3, 2, 1, 6 }
Program.RangedReversal(new[] { 9, 8, 7, 4 }, 0, 0); // new[] { 9, 8, 7, 4 }

Notas

  • Los arreglos se indexan desde cero.
  • Los índices inicial y final siempre serán válidos para el arreglo.
  • El índice final siempre será mayor o igual que el inicial.
  • Si los índices inicial y final son iguales, devuelve el arreglo sin cambios.