Una comparación sencilla

Mubashir necesita tu ayuda para comparar dos arreglos.

El primer arreglo contiene números y el segundo debe contener los cuadrados de los números del primer arreglo. Crea una función que devuelva true únicamente cuando el segundo arreglo contenga exactamente esos cuadrados. Los valores duplicados deben aparecer la misma cantidad de veces, aunque pueden estar en cualquier orden. De lo contrario, devuelve false.

Por ejemplo, 121 es el cuadrado de 11, 14641 es el cuadrado de 121, 20736 es el cuadrado de 144, 361 es el cuadrado de 19 y 25921 es el cuadrado de 161.

Ejemplos

Program.simpleComp(new long[] { 121L, 144L, 19L, 161L, 19L, 144L, 19L, 11L }, new long[] { 121L, 14641L, 20736L, 361L, 25921L, 361L, 20736L, 361L }) ➞ true

Program.simpleComp(new long[] { 4L, 4L }, new long[] { 1L, 31L }) ➞ false

Program.simpleComp(new long[] { 2L, 2L, 3L }, new long[] { 4L, 4L, 9L }) ➞ true

Notas

  • Los números pueden aparecer en cualquier orden.
  • Las cantidades de valores duplicados deben coincidir exactamente.
  • Los valores negativos se elevan al cuadrado normalmente.
  • Devuelve false si cualquiera de los arreglos es null o si tienen longitudes diferentes.