首页 > 试题广场 >

小美的排列构造

[编程题]小美的排列构造
  • 热度指数:2609 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小美定义一个数组a的权值计算如下:
首先将a的每一对相邻两项求和,得到一个b数组。那么b数组的最大值减最小值即为a数组的权值。
例如,若a=[2,1,3],那么b=[3,4]b数组的极差是1。因此a数组的权值为1。
现在小美希望你能构造一个长度为n的排列,满足权值尽可能小。你能帮帮她吗?

排列是指一个长度为n的数组,其中 1 到n每个元素恰好出现一次。

输入描述:
一个正整数n,代表排列的长度。
2\leq n \leq 200000


输出描述:
一个合法的排列。如果有多解输出任意即可。
示例1

输入

3

输出

2 1 3

说明

这个数组的权值为 1。输出[2,3,1]等排列也是合法的。
头像 柯慕灵
发表于 2023-09-02 17:38:07
python题解 思想很简单,把最大最小的值两两放在一起即可,那差值就会最小 不过单数个的时候以及到达一半的时候要注意提前跳出 n = int(input()) res = [] for i in range(n): res.append(n - i) if n - i <= 展开全文