2808: 【算法思想】【双指针】合并两个升序数组
题目描述
已知数组a中有n个按升序序排列的元素,数组b中有m个升序排列的元素,编程将a与b中的所有元素按升序存入数组c中
输入
输入有两行,第一行首先是一个正整数n,然后是n个整数;第二行首先是一个正整数m,然后是m个整数,m, n均小于等于1000000
输出
输出合并后的m+n个整数,数据之间用空格隔开。输出占一行。
样例输入
4 1 2 5 7 3 2 4 6
样例输出
1 2 2 4 5 6 7
Code:
#include<bits/stdc++.h>
using namespace std;
int a[1000005],b[1000005],c[2000010];
int n,m,k=1;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
cin>>m;
for(int i=1;i<=m;i++){
cin>>b[i];
}
int s=1,t=1;
while(s<=n&&t<=m){
if(a[s]<=b[t]){
c[k++]=a[s++];
}else{
c[k++]=b[t++];
}
}
while(s<=n){
c[k++]=a[s++];
}
while(t<=m){
c[k++]=b[t++];
}
for(int i=1;i<=m+n;i++){
cout<<c[i]<<" ";
}
return 0;
}
/**************************************************************
Problem: 2808
User: yangrenrui
Language: C++
Result: 正确
Time:1061 ms
Memory:17804 kb
****************************************************************/
原文地址:https://blog.csdn.net/yangrenrui/article/details/137834907
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!