Dada una array, encuentre el elemento menos frecuente en ella. Si hay varios elementos que aparecen la menor cantidad de veces, imprima cualquiera de ellos.
Ejemplos:
Input : arr[] = {1, 3, 2, 1, 2, 2, 3, 1} Output : 3 3 appears minimum number of times in given array. Input : arr[] = {10, 20, 30} Output : 10 or 20 or 30
Una solución simple es ejecutar dos bucles. El bucle exterior recoge todos los elementos uno por uno. El bucle interno encuentra la frecuencia del elemento elegido y la compara con el mínimo hasta el momento. La complejidad temporal de esta solución es O(n 2 )
Una mejor solución es clasificar. Primero ordenamos la array, luego recorremos linealmente la array.
Javascript
<script> // JavaScript program to find the least frequent element // in an array. function leastFrequent(arr, n) { // Sort the array arr.sort(); // find the min frequency using // linear traversal let min_count = n+1, res = -1; let curr_count = 1; for (let i = 1; i < n; i++) { if (arr[i] == arr[i - 1]) curr_count++; else { if (curr_count < min_count) { min_count = curr_count; res = arr[i - 1]; } curr_count = 1; } } // If last element is least frequent if (curr_count < min_count) { min_count = curr_count; res = arr[n - 1]; } return res; } // Driver code let arr = [1, 3, 2, 1, 2, 2, 3, 1]; let n = arr.length; document.write(leastFrequent(arr, n)); </script>
3
Complejidad de tiempo: O(n Log n)
Espacio auxiliar: O(1)
Una solución eficiente es usar hashing. Creamos una tabla hash y almacenamos elementos y su frecuencia cuenta como pares de valores clave. Finalmente recorremos la tabla hash e imprimimos la clave con el valor mínimo.
Javascript
<script> // JavaScript program to find the least frequent element // in an array. function leastFrequent(arr, n) { // Insert all elements in hash. var hash = new Map(); for (var i = 0; i < n; i++) { if(hash.has(arr[i])) hash.set(arr[i], hash.get(arr[i])+1) else hash.set(arr[i], 1); } // find the min frequency var min_count = n+1, res = -1; hash.forEach((value, key) => { if (min_count >= value) { res = key; min_count = value; } }); return res; } // driver program var arr = [1, 3, 2, 1, 2, 2, 3, 1]; var n = arr.length; document.write( leastFrequent(arr, n)); </script>
3
Tiempo Complejidad : O(n)
Espacio Auxiliar : O(n)
Consulte el artículo completo sobre el elemento menos frecuente en una array para obtener más detalles.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA