题目: https://pintia.cn/problem-sets/15/problems/2999
思路: 用数组存储数据,设两个指针分别扫描两个数组,比较两个指针指向数据的大小,较小的继续向后扫描,相同就记录下来,直至其中一个数组尾部,结束扫描。
注意: 第五个测试点数据量较大。
代码:
#include <iostream>
#include <vector>
using namespace std;
int s1[1000005];
int s2[1000005];
vector<int> outputList;
void input(int s[]){
int i = 0;
while(true){
int c; cin>>c;
s[i++] = c;
if(c == -1) break;
}
}
int main() {
input(s1),input(s2);
int i = 0,j = 0;
while(true){
int a = s1[i],b = s2[j];
if(a == -1 || b == -1) break;
if(a < b) i++;
else if(a > b) j++;
else outputList.push_back(a),i++,j++;
}
if(outputList.empty()) cout<<"NULL"<<endl;
else {
int size = outputList.size();
for(int c = 0;c < size - 1;c++)
cout<<outputList.at(c)<<" ";
cout<<outputList.back()<<endl;
}
return 0;
}
1107

被折叠的 条评论
为什么被折叠?



