题目地址:
https://www.acwing.com/problem/content/818/
给定一个长度为
n
n
n的数组
a
a
a和一个整数
s
i
z
e
size
size,请你编写一个函数,void reverse(int a[], int size)
,实现将数组
a
a
a中的前
s
i
z
e
size
size个数翻转。输出翻转后的数组
a
a
a。
输入格式:
第一行包含两个整数
n
n
n和
s
i
z
e
size
size。第二行包含
n
n
n个整数,表示数组
a
a
a。
输出格式:
共一行,包含
n
n
n个整数,表示翻转后的数组
a
a
a。
数据范围:
1
≤
s
i
z
e
≤
n
≤
1000
1≤size≤n≤1000
1≤size≤n≤1000
代码如下:
#include <iostream>
using namespace std;
int a[1010];
void reverse(int a[], int size) {
for (int i = 0, j = size - 1; i < j; i++, j--) swap(a[i], a[j]);
}
int main() {
int n, s;
cin >> n >> s;
for (int i = 0; i < n; i++) cin >> a[i];
reverse(a, s);
for (int i = 0; i < n; i++) printf("%d ", a[i]);
puts("");
return 0;
}
时间复杂度 O ( n ) O(n) O(n),空间 O ( 1 ) O(1) O(1)。