Problema
Return a copy of the list with its first and last elements swapped. Lists with fewer than two elements stay the same.
Implement swap_first_last(items).
Input
items: The list of integers.
Output
Return the list with the ends swapped.
Restricciones
0 ≤ length ≤ 100,000
Ejemplos
Entrada:
items = [1, 2, 3, 4]
Salida esperada:
expected = [4, 2, 3, 1]
Entrada:
std::vector<long long> items = {1, 2, 3, 4};
Salida esperada:
std::vector<long long> expected = {4, 2, 3, 1};
Entrada:
long[] items = new long[] {1, 2, 3, 4};
Salida esperada:
long[] expected = new long[] {4, 2, 3, 1};
Explicación
1 and 4 trade places: [4, 2, 3, 1].
Entrada:
items = [9]
Salida esperada:
expected = [9]
Entrada:
std::vector<long long> items = {9};
Salida esperada:
std::vector<long long> expected = {9};
Entrada:
long[] items = new long[] {9};
Salida esperada:
long[] expected = new long[] {9};
Explicación
A single item has nothing to swap with: [9].
Cómo abordarlo
Inténtalo primero por tu cuenta y luego abre las pistas una a una.
Pista 1
Solo cambian los dos extremos; todo lo del medio queda igual.
Pista 2
Construye una nueva lista conservando la parte central y poniendo primero el último elemento, luego el primero al final.
Pista 3
Recuerda que los casos de lista vacía y de un solo elemento deben devolverse sin cambios.
Complejidad esperada
tiempo O(n), espacio extra O(n)
Referencias
Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.