修练者
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
int w=0,n,i,j,t,a[2100],k,m,max=-1,min=10000;
float a_1,c_1,b_1,r=0,v,s=0;
cin>>m>>n;
for(i=1;i<=m;i++)
{
a[i]=-1;
}
k=1;
for(i=1;i<=n;i++)
{
cin>>t;
r=0;
if(k==m)
k=1;
for(j=1;j<=m;j++)
if(t==a[j])
{
r=1;
break;
}
if(r==0)
{
s++;
a[k]=t;
k++;
}
}
cout<<s;
}
58分,求大佬找错。
初级守护
定义一个链表
定义答案ans,初始值为零
对于每个输入的单词,执行:
定义一个标志位,初始值为false
遍历链表
如果当前元素为输入的单词
标志位改为true
跳出循环
如果标志位为false
ans++;
如果链表长度等于m
删除链表表头
在链表尾端插入新单词
否则
直接插入新单词
输出ans