题解 | #整型数组合并#
整型数组合并
https://www.nowcoder.com/practice/c4f11ea2c886429faf91decfaf6a310b
#include <bits/stdc++.h>
using namespace std;
void process(vector<int> nums1, vector<int> nums2, vector<int>& res){
int m = nums1.size(), n = nums2.size();
int i = 0, j = 0;
while(i < m || j < n){
if(j == n){
res.push_back(nums1[i++]);
}
else if(i == m){
res.push_back(nums2[j++]);
}
else if(nums1[i] < nums2[j]){
res.push_back(nums1[i++]);
}
else if(nums1[i] > nums2[j]){
res.push_back(nums2[j++]);
}
else{
res.push_back(nums1[i]);
i++;
j++;
}
}
sort(res.begin(), res.end());
/*for(int i = 0; i < res.size(); i++){
cout << res[i];
}*/
}
int main(){
/*法一
int m = 0;
cin >> m;
vector<int> nums1;
for(int i = 0; i < m; i++){
int tmp = 0;
cin >> tmp;
nums1.push_back(tmp);
}
int n = 0;
cin >> n;
vector<int> nums2;
for(int i = 0; i < n; i++){
int tmp = 0;
cin >> tmp;
nums2.push_back(tmp);
}
vector<int> res;
process(nums1, nums2, res);
set<int> st; //使用set存,set有自动排序的特性,且不允许有重复元素
for(int i = 0; i < res.size(); i++){
st.insert(res[i]);
}
for(auto iter = st.begin(); iter != st.end(); iter++){
cout << *iter;
}
*/
//法二
int m,n;
set<int> gather; //使用set存,set有自动排序的特性,且不允许有重复元素
while(cin>>m){
int num1,num2;
for(int i=0;i<m;i++){
cin>>num1;
gather.insert(num1);
}
cin>>n;
for(int i=0;i<n;i++){
cin>>num2;
gather.insert(num2);
}
for(auto it=gather.begin();it!=gather.end();it++){
cout<<*it;
}
}
return 0;
}
华为题库题解 文章被收录于专栏
牛客华为题库的题解

查看22道真题和解析