top1编程
← 返回题目
题解

【入门】数组元素的移动

1 条题解

  • 0
    @ 2026-7-30 1:37:23

    解题思路

    先保存第 x 个数,再让后面的数向前移动,最后把保存的数放到末尾。

    参考代码

    // 先读入题目给出的输入数据。
    // 用简单的循环完成题目要求。
    #include <iostream>
    using namespace std;
    
    int main() {
        int n, a[15], x;
        cin >> n;
        for (int i = 0; i < n; i++) cin >> a[i];
        cin >> x;
        int t = a[x - 1];
        for (int i = x - 1; i < n - 1; i++) {
            // x 后面的每个数向前移动一格。
            a[i] = a[i + 1];
        }
        a[n - 1] = t;
        for (int i = 0; i < n; i++) cout << a[i] << " ";
        cout << endl;
        return 0;
    }
    

    复杂度分析

    代码只使用了简单变量、数组、循环和判断。时间复杂度根据题目的枚举或扫描过程计算,额外空间主要是输入数组,空间复杂度为 O(n)。

    • 1