你得找到这样一个数据结构:它能快速的新增一个元素,它能快速的判断是否存在某个元素。
程序代码:
#include <stdio.h>
#include <set> // 只是示例
int main( void )
{
unsigned t;
scanf( "%u", &t );
while( t-- )
{
std::set<int> container; // 只是示例,假设你有这样的一个数据结构
unsigned n;
scanf( "%u", &n );
while( n-- )
{
int v;
scanf( "%d", &v );
if( container.find(v) == container.end() ) // 只是示例,判断v是否已经存在于container中
{
printf( "%s%d", (" "+container.empty()), v ); // 只是示例,判断container容器是否为空
container.insert( v ); // 只是示例,将v添加到container容器中
}
}
putchar( '\n' );
}
return 0;
}
从题目来看,这是一道比较弱的题,自然不需要你写一个高效的算法,因此循环查找即可。
程序代码:
#include <stdio.h>
int main( void )
{
unsigned t;
scanf( "%u", &t );
while( t-- )
{
int container[100];
size_t container_size = 0;
unsigned n;
scanf( "%u", &n );
while( n-- )
{
int v;
scanf( "%d", &v );
size_t i;
for( i=0; i!=container_size && v!=container[i]; ++i );
if( i == container_size )
{
printf( "%s%d", (" "+(container_size==0)), v );
container[container_size++] = v;
}
}
putchar( '\n' );
}
return 0;
}