Unión e intersección de listas
Crea un método que reciba dos arreglos de enteros y devuelva un arreglo de intersección y un arreglo de unión.
- Arreglo de intersección: Elementos que ambos arreglos tienen en común.
- Arreglo de unión: Elementos que están en el primer arreglo, en el segundo o en ambos (no es una operación OR exclusiva).
Aunque los arreglos de entrada pueden contener números duplicados, los arreglos de intersección y unión devueltos deben estar convertidos en conjuntos; es decir, no deben contener duplicados. Los arreglos devueltos deben estar ordenados de forma ascendente.
int[] array1 = new int[]{5, 6, 6, 6, 8, 9};
int[] array2 = new int[]{3, 3, 4, 4, 5, 5, 8};
// Intersección: new int[]{5, 8}
// 5 y 8 son los únicos 2 números que están en ambos arreglos.
// Unión: new int[]{3, 4, 5, 6, 8, 9}
// Cada número está presente en al menos uno de los arreglos.Ejemplos
Program.intersectionUnion(new int[]{1, 2, 3, 4, 4}, new int[]{4, 5, 9}) ➞ new int[][]{new int[]{4}, new int[]{1, 2, 3, 4, 5, 9}}
Program.intersectionUnion(new int[]{1, 2, 3}, new int[]{4, 5, 6}) ➞ new int[][]{new int[]{}, new int[]{1, 2, 3, 4, 5, 6}}
Program.intersectionUnion(new int[]{1, 1}, new int[]{1, 1, 1, 1}) ➞ new int[][]{new int[]{1}, new int[]{1}}Notas
- El orden de salida debe ser: primero la intersección y luego la unión.
- Recuerda que ambos arreglos de salida deben estar en orden ascendente.
- Cada arreglo de entrada tendrá al menos un elemento.
- Si los dos arreglos son disjuntos (no tienen ningún elemento en común), devuelve un
int[]vacío para la intersección.