Ofrecer para probar la seguridad de veintiocho:

trabajo informal

Hay un número de serie número que aparece más de la mitad de la longitud de la matriz, encontrar este número. Por ejemplo, una longitud de la matriz de entrada 9 {1,2,3,2,2,2,5,4,2}. Dado que el número 2 aparece cinco veces, más de la mitad de la longitud de la matriz en la matriz, la salida 2. Si hay 0 de salida.

pensamiento

Hora de inicio es muy simple idea es utilizar un bucle for, tomar un tiempo en el primer ciclo de datos, a continuación, utilizar un bucle while, el número de veces que aparece más uno, y ver finalmente que el número es mayor que el valor de la matriz la mitad de la longitud del código es como sigue:

 int m=array.length;
        int n=m/2;
        int i;
        for(i=0;i<m;i++){
            int k=array[i];
            int j=0;
            int p=0;
            while(j<m)
            {
                if(array[j]==k)
                {
                    p++;
                }
                j++;
            }
            if(p>n)
             break;
        }
        if(i==m)
            return 0;
        else
        return 
            array[i];

El pensamiento es el comienzo, no pensar demasiado, el blog de escritura de nuevo encontró el tiempo para utilizar el mapa Este conjunto de preguntas es el método más simple, complejidad del tiempo es O (N), utilizando principalmente la colección diagrama característico. En lo personal me siento que para el cálculo de la colección de mapas digitales sigue siendo una gran ventaja.

código

import java.util.*;
public class Solution {
    public int MoreThanHalfNum_Solution(int [] array) {
        int len=array.length;
        int half=len/2;
        Map<Integer,Integer> map=new HashMap<>();
        for(int i=0;i<len;i++){
            map.put(array[i],map.containsKey(array[i])? map.get(array[i])+1:1);
        }
        for(int i=0;i<len;i++){
            if(map.get(array[i])>half){
                return array[i];
            }
        }
        return 0;
    }
}
Publicado 49 artículos originales · ganado elogios 29 · vistas 2933

Supongo que te gusta

Origin blog.csdn.net/weixin_44015043/article/details/105374780
Recomendado
Clasificación