Partición progresiva

Devuelve todas las formas de dividir un arreglo entre dos elementos adyacentes. Cada partición contiene una parte izquierda no vacía y una parte derecha no vacía, en el orden de las posiciones de división.

Ejemplo

Program.movingPartition(new int[]{1, 2, 3}) ➞ new int[][][]{
  {{1}, {2, 3}},
  {{1, 2}, {3}}
}

Un arreglo vacío no tiene particiones.