Se le da una array de n elementos. Debe crear subconjuntos a partir de la array de modo que ningún subconjunto contenga elementos duplicados. Averigüe el número mínimo de subconjuntos posibles.
Ejemplos:
Input : arr[] = {1, 2, 3, 4} Output :1 Explanation : A single subset can contains all values and all values are distinct Input : arr[] = {1, 2, 3, 3} Output : 2 Explanation : We need to create two subsets {1, 2, 3} and {3} [or {1, 3} and {2, 3}] such that both subsets have distinct elements.
Tenemos una solución existente para este problema, consulte el enlace Número mínimo de subconjuntos con elementos distintos . Resolveremos este problema rápidamente en python usando el método Counter (iterable) . El enfoque es muy simple, calcule la frecuencia de cada elemento en la array e imprima el valor de la frecuencia máxima porque queremos que cada subconjunto sea diferente y tenemos que poner cualquier elemento repetido en un subconjunto diferente, por lo que para obtener el número mínimo de subconjuntos deberíamos tener al menos frecuencia máxima número de subconjuntos .
# Python program to find Minimum number of # subsets with distinct elements using Counter # function to find Minimum number of subsets # with distinct elements from collections import Counter def minSubsets(input): # calculate frequency of each element freqDict = Counter(input) # get list of all frequency values # print maximum from it print (max(freqDict.values())) # Driver program if __name__ == "__main__": input = [1, 2, 3, 3] minSubsets(input)
Producción:
2
Publicación traducida automáticamente
Artículo escrito por Shashank Mishra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA