题目
从标准输入读入 n 个整数存入列表,将列表中的所有元素就地逆序排列,并输出逆序后的列表。
输入格式:第一行输入元素个数 n;第二行输入 n 个整数,以空格分隔。
输出格式:在一行中输出逆序后的数组元素,每个数字后跟空格,末尾换行。
数据范围与约定:1 ≤ n ≤ 1000。
思路与算法
1. 原地双指针交换
头尾双指针相向收缩,对称位置元素两两交换:a[i], a[j] = a[j], a[i]。
2. Python 原生支持
也可直接使用 a.reverse() 实现 O(1) 辅助空间的原地反转。
完整程序
n = int(input())
# 打印菱形上半部分(含对称中心行)
for i in range(1, n + 1):
print(" " * (n - i) + "*" * (2 * i - 1))
# 打印菱形下半部分
for i in range(n - 1, 0, -1):
print(" " * (n - i) + "*" * (2 * i - 1))运行示例
输入:
5
1 2 3 4 5输出:
5 4 3 2 1