题解
数组逆序重存放
1 条题解
-
0
解题思路
先把读到的 n 个数按原来的顺序存进数组 a,下标从 0 开始。
要得到逆序的结果,其实不用真的把数组里的数搬来搬去,只要“倒着输出”就行了:
- 从最后一个下标 n-1 开始,一直输出到下标 0;
- 数之间用一个空格隔开。
输出格式上要注意:除了第一个输出的数前面没有空格,其他的数前面都要有一个空格。我们用 if (i != n-1) 判断一下,让最后一个输出的数后面不会多出空格。
参考代码
// P4442 数组逆序重存放:把数组里的数倒着输出 #include <iostream> using namespace std; int main() { int n; cin >> n; // 数组里数的个数 int a[105]; for (int i = 0; i < n; i++) cin >> a[i]; // 读入 n 个数 // 从最后一个数开始,往前一个个输出 for (int i = n - 1; i >= 0; i--) { if (i != n - 1) cout << " "; // 数之间用空格隔开 cout << a[i]; } cout << endl; return 0; }复杂度分析
设有 n 个数。
- 时间:读入 n 个数、输出 n 个数,各是一遍循环,时间复杂度是 O(n)。
- 空间:需要一个能装 n 个数的数组,空间复杂度是 O(n)。
- 1