滚动数组排序的题解
作者:
题解
思路
本题很简单,经过读题后不难发现其实是简单的循环结构。 只需要掌握一个知识点:
- 任意循环
考虑当 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;
}
评论