小米2012笔试题
分析:最直观的思路就是遍历,答题代码如下:
#include<iostream>
using namespace std;
#define N 9
int tag[N],arr[N] = {9,3,2,9,4,2,6,3,7};
void find_uniq(){
int i,j;
memset(tag,0,N);
for(i=0;i<N;i++){
if(tag[i])
continue;
for(j=i+1;j<N;j++){
if(tag[j])
continue;
if(arr[i]==arr[j]){
tag[i] = tag[j] = 1;
break;
}
}
}
for(i=0;i<N;i++)
if(!tag[i])
cout << arr[i]<< " ";
}
int main(){
find_uniq();
return 0;
}
但是这种方法的复杂度近似O(n*n),所以得想其他思路。
思路一:http://blog.csdn.net/w397090770/article/details/8032898
纯推理,不太容易懂
思路二:http://zhedahht.blog.163.com/blog/static/25411174201283084246412/