Categoría: array
algoritmo de Boyer-Moore: Algoritmos
- La mayor parte de los elementos
Dada una matriz de tamaño n, la mayoría de los elementos que se encuentran en el mismo. La mayoría de los elementos de la matriz se refiere al número de ocurrencias mayores que ⌊ n / 2 ⌋ elementos.
Se puede suponer que la matriz es no vacío, y siempre hay la mayoría de los elementos de una matriz dada.
Ejemplo 1:
Entrada: [3,2,3]
de salida: 3
Ejemplo 2:
Entrada: [2,2,1,1,1,2,2]
de salida: 2
solución del problema
Mantener un recuento, la mayoría de los elementos encontrados 1, o con 1, por lo que el recuento final deben ser positivos. En iterar el proceso, después de que se despeje el encuentro, vuelve el valor digital actual como candidato, re-contado.
código
class Solution(object):
def majorityElement(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
# Boyer-Moore 算法
candi = nums[0]
count = 0
for i in nums:
if count==0:
candi=i
count += (1 if i==candi else -1)
return candi