PAT:1048. Find Coins (25)(哈希表法) AC
#include<stdio.h>
#include<string.h>
int HARSH[1066];
int main()
{
memset(HARSH,0,sizeof(HARSH));
int n,m;
scanf("%d%d",&n,&m);
for(int i=0 ; i<n ; ++i)
{
int tmp;
scanf("%d",&tmp);
++HARSH[tmp];
}
for(int i=0 ; i<1066 ; ++i)
{
if(HARSH[i]==0) //这个数字没有
continue;
if(HARSH[m-i]>0)
{
if(i==m-i && HARSH[i]<2) //这两个数字相同的时候,但是只有一个可用,也是不行的
continue;
printf("%d %d",i,m-i); //已经排除了输出不了的可能,条件都满足就输出
return 0;
}
}
printf("No Solution");
return 0;
}