prueba

domingo, abril 19, 2026

mover números de un arreglo n lugares

Problema

Un arreglo de números enteros de tamaño n tiene que recorrer la posición de los numeros K veces.

Solución:


class Solution {
    public void rotate(int[] nums, int k) {
        int n = nums.length;
        k = k % n;// Reducir k si es mayor que n
        
        reverse(nums, 0, n - 1);
        reverse(nums, 0, k - 1);
        reverse(nums, k, n - 1);
    }
    
    private void reverse(int[] nums, int start, int end) {
        while (start < end) {
            int temp = nums[start];
            nums[start] = nums[end];
            nums[end] = temp;
            start++;
            end--;
        }
    }
}

Explicación

Esta solución utiliza la técnica de inversión en tres partes. Es eficiente porque trabaja directamente sobre el arreglo original sin necesidad de crear uno nuevo.

Complejidad

  • Tiempo: O(n)
  • Espacio: O(1)

Artículo con fines educativos y de práctica personal.

No hay comentarios.:

Publicar un comentario