题目地址:
https://www.acwing.com/problem/content/816/
给定两个数组
a
a
a和
b
b
b以及一个整数
s
i
z
e
size
size,请你编写一个函数,void copy(int a[], int b[], int size)
,将
a
a
a数组中的前
s
i
z
e
size
size个数字,复制到
b
b
b数组中。复制完成后,输出
b
b
b数组。
输入格式:
第一行包含整数
n
,
m
,
s
i
z
e
n,m,size
n,m,size,分别表示
a
a
a数组的长度,
b
b
b数组的长度以及整数
s
i
z
e
size
size。第二行包含
n
n
n个整数,表示数组
a
a
a。第三行包含
m
m
m个整数,表示数组
b
b
b。
输出格式:
共一行,包含
m
m
m个整数,表示复制完成后的数组
b
b
b。
数据范围:
1
≤
n
≤
m
≤
100
1≤n≤m≤100
1≤n≤m≤100
1
≤
s
i
z
e
≤
n
1≤size≤n
1≤size≤n
代码如下:
#include <iostream>
using namespace std;
const int N = 110;
int a[N], b[N];
void copy(int a[], int b[], int size) {
for (int i = 0; i < size; i++) b[i] = a[i];
}
int main() {
int n, m, s;
cin >> n >> m >> s;
for (int i = 0; i < n; i++) cin >> a[i];
for (int i = 0; i < m; i++) cin >> b[i];
copy(a, b, s);
for (int i = 0; i < m; i++) printf("%d ", b[i]);
puts("");
return 0;
}
时间复杂度 O ( n + m ) O(n+m) O(n+m),空间 O ( 1 ) O(1) O(1)。