滚动数组排序的题解


作者: 四川大学锦江学院-2305100613(唐子贤)

题解

思路

本题很简单,经过读题后不难发现其实是简单的循环结构。 只需要掌握一个知识点:

  • 任意循环

考虑当 i = 最大num 的时候单独输入为0 其余时刻直接录入 i + 1项

注意这道题最大数据的大小!

伪代码

vector<long long> arr(num);

sort(arr.begin(), arr.end());

for ( ... ) {
    if ( i == 0 ) // 单独控制
     ...
    else
     arr[i + 1] // 直接 +1 赋值
}

详细代码

#include <bits/stdc++.h>

using namespace std;

int main()
{

  int num;
  cin >> num;

  long long nums[num];

  for (int i = 0; i < num; ++i)
  {

    int t = i + 1;
    if (t >= num)
      t = 0;
    cin >> nums[t];
  }

  for (int i = 0; i < num; ++i)
  {
    cout << nums[i] << " ";
  }

  return 0;
}

评论

目前没有评论。