Numéro du numéro de tableau de APPARAISSANT

titre

Un tableau d'entiers nums en plus des deux figures, d'autres chiffres apparaissent deux fois. S'il vous plaît écrire un programme pour trouver ces deux chiffres apparaissent seulement. la complexité du temps requis est O (n), la complexité spatiale est O (1).

pensée

1: opérations de bits, mais ne dispose pas d' une manière générale, si le sujet ne serait pas modifié,
2: tables de hachage, ont en général, vous pouvez voir un certain nombre de chiffres apparaissent, mais au détriment de l' espace, où le sujet est donné 2 <nums <10000, de sorte que les points de tas à un tableau de 10 000, le tableau original pour chacun des numéros sont sous forme numérique à la taille du mappage de table de hachage sous - jacente dans le passé, ne semble pas une seule fois dans la table de hachage correspondant à +1.

 #define MAX_VALUES 10001
int* singleNumbers(int* nums, int numsSize, int* returnSize){
    int* arr=(int*) calloc(sizeof(int) , MAX_VALUES);
    for(int i=0;i<numsSize;i++){
        arr[ nums[i] ]++;
    }
    int *new_arr=malloc(sizeof(int)*2);
    int k=0;
    for(int i=0;i<MAX_VALUES;i++){
        if(arr[i]==1)
            new_arr[k++]=i;
    }
    *returnSize=2;
    return new_arr;
}
Publié 19 articles originaux · a gagné les éloges 1 · views 3122

Je suppose que tu aimes

Origine blog.csdn.net/qq_41603639/article/details/104927966
conseillé
Classement