Corrige el código: sin modificar un arreglo
Implementa una transformación que disminuya los valores en capas concéntricas. Para cada capa desde 1 hasta times, disminuye cada valor cuyo índice sea mayor o igual que esa capa y menor que la longitud del arreglo menos esa capa.
int[] x = new[] { 3, 3, 3, 3, 3, 3, 3 };
Program.Change(x, 0); // new[] { 3, 3, 3, 3, 3, 3, 3 }
Program.Change(x, 1); // new[] { 3, 2, 2, 2, 2, 2, 3 }
Program.Change(x, 2); // new[] { 3, 2, 1, 1, 1, 2, 3 }
Program.Change(x, 3); // new[] { 3, 2, 1, 0, 1, 2, 3 }La función debe devolver el resultado transformado sin modificar la entrada original. Por lo tanto, llamarla varias veces con la misma entrada debe devolver siempre el mismo resultado, y el x original debe permanecer sin cambios.
Llamadas repetidas esperadas
Program.Change(x, 2); // new[] { 3, 2, 1, 1, 1, 2, 3 }
Program.Change(x, 2); // new[] { 3, 2, 1, 1, 1, 2, 3 }Notas
- El arreglo de entrada debe permanecer sin cambios después de cada llamada.
- Pista: haz una copia de la entrada antes de aplicar las disminuciones.
- Esta transformación forma parte de una solución al problema Tapete concéntrico.