寻找两个上升序列的共同的数的个数。 很容易就TLE了。。。后来搜的方法,就比我的多一句话,好强~! #include <stdio.h> #include <stdlib.h> #include <iostream> #include <string.h> using namespace std; int main(void) { int ncases; int s1,s2; int a[100005],b[100005]; scanf("%d",&ncases); while( ncases-- ) { scanf("%d",&s1); for(int i=0; i<s1; i++) scanf("%d",&a[i]); scanf("%d",&s2); for(int i=0; i<s2; i++) scanf("%d",&b[i]); int num = 0,k = 0; //num for count. for(int i=0; i<s1 && k<s2; ) { if( a[i] == b[k] ) { num++; k++; i++; continue; } a[i] > b[k] ? k++ : i++; // Important!!! Without this you will get TLE = =.. } printf("%d/n",num); } return 0; }