瑞瑞有点冷 2024-05-01 21:28 采纳率: 0%
浏览 154

任务279:【入门】数组元素的移动

求解答


任务279:【入门】数组元素的移动
目标

数组元素的移动,把数组的第x个位置的元素先保存起来,然后把x+1到n的元素,依次往前移一位,最后原来的第x个位置的元素放在最后

输入描述

有3行

第一行有一个整数n( n <= 10 )

第二行有n个整数

第三行有一个整数x

输出描述

移动后的数组

示例
输入:
8
1 2 3 4 5 6 7 8
1
输出:
2 3 4 5 6 7 8 1

  • 写回答

7条回答 默认 最新

  • 为荣誉而拼搏少年 2024-05-01 23:27
    关注

    普通:

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        int n,a[100000],x;
        cin>>n;
        for(int i=1;i<=n;i++)cin>>a[i];
        cin>>x;
        int t=a[x];
        for(int i=x;i<=n;i++)a[i]=a[i+1];
        a[n]=t;
        for(int i=1;i<=n;i++)cout<<a[i]<<" ";
    }
    

    时间复杂度:2n+n-x

    简便:

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        int n,a[100000],x;
        cin>>n;
        for(int i=1;i<=n;i++)cin>>a[i];
        cin>>x;
        for(int i=1;i<=n;i++)
        {
            if(i==x)continue;
            cout<<a[i]<<" ";
        }
        cout<<a[x];
    }
    

    时间复杂度:2n

    评论

报告相同问题?

问题事件

  • 创建了问题 5月1日