2 条题解

  • 1
    @ 2024-2-9 11:05:46

    世界上最好的题解😄

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    	int n,m,pos=1,cnt=0,tmp;
    	cin>>m>>n;
    	int *a=new int[m+1]();
    	for(int i=1;i<=m;i++)a[i]=-1;
    	for(int i=1;i<=n;i++){
    		cin>>tmp;
    		int flag=1;
    		for(int j=1;j<=m;j++){
    			if(tmp==a[j]){
    				flag=0;
    				break;
    			}
    		}
    		if(flag){
    			a[pos]=tmp;
    			cnt++;
    			pos++;
    			if(pos>m)pos=1;
    		}
    	}
    	cout<<cnt;
    	return 0;
    }
    

    看完别忘了点赞呦👀️

    • 0
      @ 2022-8-18 13:57:26
      #include <iostream>
          #include <stdio.h>
          #include <algorithm>
          using namespace std;
          int n,m,x,ans,l,r,a[1005],b[1005];
          int main()
          {
              cin>>m>>n;
              l=0;r=0;//初始化两个指针
              for (int i=1;i<=n;i++)
               {
                   scanf("%d",&x);//边读入边做
                   if (a[x]==0) 
                   {
                       ans++;
                      r++;b[r]=x;a[x]=1;//因为每次遇到新单词都要做这些操作,不如搬到判断语句外做,这样程序更简洁
                      if (r>m) {l++;a[b[l]]=0;}
                   }
               }
              cout<<ans;
              return 0;//千万不能忘记打这句,不然在比赛中会出错
      }
      
      • 1

      信息

      ID
      539
      时间
      1000ms
      内存
      125MiB
      难度
      2
      标签
      递交数
      19
      已通过
      15
      上传者