leetcode-el número perdido-1

Números que desaparecen

El problema requiere que la
  matriz nums contenga todos los números enteros de 0 an, pero falta uno. Escriba el código para encontrar el número entero que falta. ¿Puedes hacerlo en O (n) tiempo?
La idea es
  que debido a que los elementos de la matriz son números del 0 al n, que son exactamente iguales a los subíndices, puede usar las dos fórmulas a ^ a = 0 y 0 ^ a = a para programar. Solo el número que falta aparece una vez, los números restantes aparecen dos veces.
Código

#include <stdio.h>

int FindNum(int str[],int len)
{
	int s = 0;

	for (int i = 0; i < len; i++)
	{
		s ^= i;
		s ^= str[i];
	}
	s ^= len;
	return s;
}

int main()
{
	int str[] = { 1, 9, 8, 7, 6, 4, 3, 2, 10 , 0};
	printf("%d", FindNum(&str, sizeof(str) / sizeof(int)));
	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/weixin_43580319/article/details/113093429
Recomendado
Clasificación