ZEP: Single Number (15 minutes) (langue C)

Étant donné un tableau non vide d'entiers, chaque élément apparaît deux fois, sauf un. Trouvez qu'un seul.

Remarque:

Votre algorithme doit avoir une complexité d'exécution linéaire. Pourriez-vous le mettre en œuvre sans utiliser la mémoire supplémentaire?

Pointe:

Vous pouvez utiliser pour résoudre ce bitwise problème.

Interface fonction de définition:
Long Long singleNumber (Long Long les nums *, int numsSize);

exemple de programme de test de référence:
#include <stdio.h>
#define MAXN 1000005

long long nums [maxn];

long long singleNumber (long long * nums, int numsSize);

int main()
{

int N;

scanf ( "% d", et N);
pour (int i = 0; i <N; i ++)
scanf ( "% lld", et nums [i]);

printf ( "%", LLD singleNumber (nums, N));

return 0;

}

/ * S'il vous plaît compléter la réponse ici * /

Exemple d' entrée 1:
. 3
2 2 1

Echantillon Sortie 1:
1

Exemple d' entrée 2:
. 5
4. 1. 1 2 2.

Exemple de sortie 2:
4

long long singleNumber(long long* nums, int numsSize)
{
    int i;
    long long ans = nums[0];
    for (i = 1; i < numsSize; i++)
        ans = ans ^ nums[i];
    return ans;

}
Publié 58 articles originaux · louange gagné 21 · vues 605

Je suppose que tu aimes

Origine blog.csdn.net/qq_45624989/article/details/105399578
conseillé
Classement