Niukewang Jianzhi ofrece una pregunta simple 3

Más de la mitad de los números de la matriz

tema:

Hay un número en la matriz que parece más de la mitad de la longitud de la matriz. Averigüe este número. Por ejemplo, ingrese una matriz {1,2,3,2,2,2,5,4,2} de longitud 9. Dado que el número 2 aparece 5 veces en la matriz, que es más de la mitad de la longitud de la matriz, se emite 2. Si no existe, salida 0.

análisis:

En primer lugar, el número requerido en la pregunta debe exceder la longitud general de la matriz, por lo que es la mayor cantidad en la matriz. Primero podemos encontrar la mayor cantidad de la matriz y luego determinar si excede la mitad de la matriz,
establecer dos contadores 1 y 2, 1 Responsable de contar el número de ocurrencias de cada número cada vez, 2 Responsable de guardar el número que es más que la última vez, configurar un caché para guardar el número actual del número más grande
y compararlo con la última vez después de cada estadística para determinar si Necesita actualizar el contador 2 y la caché.
El algoritmo se puede optimizar aún más ordenando,

Ejemplo de código

public static int search (int [] arr){
    
    
            Arrays.sort(arr);

            int len = arr.length;
            int other = 0;
            int large = 0;
            int count = 0;
            int j = 0;
            for (int i=0;i<len/2;i+=other){
    
    

                other =0;
               for (j=i;j<len;j++){
    
    
                   if (arr[i]==arr[j]){
    
    
                       other++;


                   }else {
    
    
                       break;
                   }
               }
               if (other>large){
    
    
                   large = other;
//                   other =0;
                   count=arr[i];
               }else {
    
    
                   continue;
               }

            }
            if (large > len/2){
    
    
                return count;
            }
            return 0;

    }

Supongo que te gusta

Origin blog.csdn.net/weixin_44712669/article/details/111302299
Recomendado
Clasificación