leetcode serie - la mayoría de los elementos (ver la solución a un problema, me sorprendió la serie)

Categoría: array

algoritmo de Boyer-Moore: Algoritmos

  1. 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
Publicado 26 artículos originales · ganado elogios 0 · Vistas 5404

Supongo que te gusta

Origin blog.csdn.net/Yolo_C/article/details/104750247
Recomendado
Clasificación