1 #include<iostream> 2 using namespace std; 3 int m,n,s=0; 4 int a[1500]; 5 int z[1000]; 6 bool chazhao(int mm,int x) 7 { 8 for(int i=0;i<mm;i++)//遍历内存中数据,如果存在返回真 9 { 10 if(z[i]==x)return true; 11 } 12 for(int k=0;k<mm-1;k++)z[k]=z[k+1];//遍历之后,没有发现,腾出第一个,末尾存入---此处是一个典型的栈---- 13 z[mm-1]=x; 14 return false; 15 } 16 int main() 17 { 18 cin>>m>>n; 19 for(int i=0;i<n;i++) 20 { 21 cin>>a[i]; 22 if(!chazhao(m,a[i]))s++; 23 } 24 cout<<s; 25 return 0; 26 }
第一次提交代码 90分
1 #include<iostream> 2 using namespace std; 3 int m,n,s=0; 4 int a[15000];//数组尽量开得大点 5 int z[10001];//数组尽量开得大 6 bool chazhao(int x) 7 { 8 for(int i=0;i<m;i++) 9 { 10 if(z[i]==x)return true; 11 } 12 for(int k=0;k<m-1;k++)z[k]=z[k+1]; 13 z[m-1]=x; 14 return false; 15 } 16 int main() 17 { 18 cin>>m>>n; 19 for(int j=0;j<m;j++)z[j]=-1;//在第一次代码中全局数组默认值为0,而题目中说单词数是非负数,因此丢掉10分,so,这个初始值代码很重要! 20 for(int i=0;i<n;i++) 21 { 22 cin>>a[i]; 23 if(!chazhao(a[i]))s++; 24 } 25 cout<<s; 26 return 0; 27 }
改进后的代码 100分