反向思维,先求数组中不用处理的元素个数,再用n减去这个数,得到结果。
1 #include <iostream> 2 #include <cstring> 3 4 #define maxn 200000+10 5 6 using namespace std; 7 8 int n; 9 int a[maxn],b[maxn]; 10 int visit[maxn]; 11 int main (){ 12 while (cin>>n){ 13 int flag,temp; 14 int ans=maxn; 15 memset (visit,0,sizeof visit); 16 for (int i=0;i<n;i++){ 17 cin>>a[i]; 18 } 19 a[n]=0; 20 for (int i=0;i<n;i++){ 21 cin>>b[i]; 22 } 23 int j=0; 24 ans=0; 25 26 27 28 //求不用处理的元素个数 29 for (int i=0;i<n;i++){ 30 if (a[j]!=b[i]) 31 continue ; 32 j++; 33 ans++; 34 } 35 cout<<n-ans<<endl; 36 } 37 return 0; 38 }