É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;
}