一维数组中所有数字均应重复两遍,但有一个只出现了一次,找出这个数据
#include <stdio.h>
#include <stdlib.h>
int FindValueCounts(int arr[], int size, int value);
int main(void)
{
int brr[11] = {1, 2, 3, 3, 1, 4, 5, 4, 5, 9, 9};
for(int a = 0; a < sizeof(brr); a ++)
{
if(FindValueCounts(brr, sizeof(brr), brr[a]) == 1)
{
printf("value = %d\n", brr[a]);
return 0;
}
}
return 0;
}
int FindValueCounts(int arr[], int size, int value)
{
int counts = 0;
for(int a = 0; a < size; a ++)
{
if(arr[a] == value)
counts ++;
if(counts == 2)
break;
}
return counts;
}
不考虑时间限制的话,就是双循环遍历搜索
供参考:
#include <stdio.h>
int main()
{
int arr[11] = { 1, 2, 3, 3, 1, 4, 5, 4, 5, 9, 9 }, n = 0, i;
for (i = 0; i < 11; i++)
n ^= arr[i];
printf("%d", n);
return 0;
}
两种思路,授人以鱼不如授人以渔,不贴代码了