本題網(wǎng)站連接
這題是一道簡單模擬運算的題蔚龙,思路很好想,并不難但很容易一個點給坑到:數(shù)據(jù)輸入可以為0S承病D靖!因為我習(xí)慣將數(shù)組a初始化為0解孙,并用0來作為判斷條件坑填,所以某些情況會輸出錯誤,所以wa了兩次妆距。
教訓(xùn):遇到出入情況有0的情況慎重考慮是否要以0為判斷條件和將數(shù)組初始化為0.(最后附上AC代碼)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int a[1010];
int b[1010];
int main()
{
memset(a,-1,sizeof(a));
int m,n,cnt = 0,ind = 0,nums = 0;
scanf("%d%d",&m,&n);
for(int i = 0;i<n;i++)
{
scanf("%d",&b[i]);
if(a[b[i]]==-1)
{
if(cnt<m){
a[b[i]] = 1;
cnt++;
nums++;
}
else{
while(b[ind]==-1){
ind++;
}
a[b[ind]] = -1;
a[b[i]] = 1;
ind++;
nums++;
}
}
else
b[i]=-1;
}
printf("%d",nums);
return 0;
}