Offre pour prouver la sécurité vingt-huit:

travail occasionnel

Il y a un certain nombre de numéro de tableau qui apparaît plus de la moitié de la longueur du tableau, trouver ce numéro. Par exemple, une longueur du tableau d'entrée 9 {} 1,2,3,2,2,2,5,4,2. Étant donné que le numéro 2 apparaît cinq fois, plus de la moitié de la longueur du tableau dans le tableau, la sortie 2. S'il y a 0 sortie.

pensée

Heure de début est une idée très simple est d'utiliser une boucle, prendre un temps dans le premier cycle de données, puis utiliser une boucle while, le nombre de fois où il apparaît plus un, et enfin voir qui le nombre est supérieur à la valeur du tableau la moitié de la longueur du code est le suivant:

 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];

La pensée est le début, pas trop penser, le blog d'écriture encore trouvé le temps d'utiliser la carte Cet ensemble de questions est la méthode la plus simple, la complexité est en O (N), principalement en utilisant la collection cartographique. Personnellement, je pense que pour le calcul de la collecte de données cartographiques numériques est toujours un grand avantage.

code

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;
    }
}
Publié 49 articles originaux · louange gagné 29 · vues 2933

Je suppose que tu aimes

Origine blog.csdn.net/weixin_44015043/article/details/105374780
conseillé
Classement