找出数组中只出现一次的数字
2014-03-21 12:17
225 查看
数组中只有一个数出现一次,其他的数都出现2次,找出出现一次的数字,要求O(n),不使用辅助空间。
其实只要其他数字出现的都是偶数次,这个方法都可以。
#include <stdio.h> void PrintArry(int a[],int len) { int i = 0; for (; i < len; i++) { printf("%d ",a[i]); } printf("\n"); } int fun(int a[],int len) { int result = a[0]; int i = 1; for (; i < len;i++) { result ^= a[i]; } return result; } int main() { int a[] = {1,2,4,1,7,5,4,2,7}; int b[] = {1,3,3,1,4,5,3,1,4,1,3}; int res = 0; int len = sizeof(a)/sizeof(a[0]); int len1 = sizeof(b)/sizeof(b[0]); PrintArry(a,len); res = fun(a,len); prtinf("%d\n", res); PrintArry(b,len1); res = fun(b,len1); prtinf("%d\n", res); return 0; }
其实只要其他数字出现的都是偶数次,这个方法都可以。
相关文章推荐
- 在一个数组中找出只出现一次的一个数字、两个数字,而其余数字全部成对出现。
- 找出数组中只出现一次的数字
- 找出数组中两个只出现一次的数字--分组异或
- [数组]找出数组中两个只出现一次的数字
- 一个数组中有三个数字a、b、c只出现一次,其他数字都出现了两次。请找出三个只出现一次的数字。
- 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字
- 每天一道算法题10 找出数组中两个只出现一次的数字
- 经典算法题1:找出数组中只出现一次的数字,其它数字都出现了两次
- 【leetcode】数组中找出只出现一次的数字(Single Number)
- 找出数组中两个只出现一次的数字
- .一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现。
- 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字
- 找出数组中2个只出现一次的数字
- 100题_34 找出数组中两个只出现一次的数字
- 找出数组中只出现一次的两个数字
- 数组中有两个出现一次的数字,其他数字都出现两次,找出这两个数字
- 程序员面试宝典(34)-找出数组中两个只出现一次的数字
- 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
- 一个整型数组里除了一个或者两个或者三个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)
- 找出数组中两个只出现一次的数字