您应该编写一个程序或函数,该程序或函数将非负整数k
和排序后的整数列表L
作为输入,并输出或返回平滑列表M
。
M
L
通过在k
保持列表排序的同时最多插入整数元素来从升序列表创建。插入的整数应该以最大前向差异M
尽可能小的方式选择。我们将这个最小值称为“平滑度”。
该列表的正向差异-1 3 8 11 15
是4 5 3 4
与最大正向差别5
。
通过2
插入,2 10 15
is 的平滑度4
和可能的输出存在2 6 10 11 15
正向差异4 4 1 4
。
输入值
- 一个非负整数
k
。 L
包含至少2个元素的升序整数列表。
输出量
- 升序整数列表
M
。 - 如果存在多个正确答案,则输出恰好其中一个(任何一个都足够)。
- 您的解决方案必须在一分钟之内在我的计算机上解决任何示例测试用例(我将仅测试关闭的用例。我的PC低于平均水平。)。
例子
输入(k
,L
)=>可能的输出以及括号中的最大前向差(不属于输出)
0, 10 20 => 10 20 (10)
2, 1 10 => 1 4 7 10 (3)
2, 2 10 15 => 2 6 10 11 15 (4)
3, 2 10 15 => 2 5 8 10 12 15 (3)
5, 1 21 46 => 1 8 15 21 27 33 39 46 (7)
5, 10 20 25 33 => 10 14 18 20 24 25 29 33 (4)
3, 4 4 6 9 11 11 15 16 25 28 36 37 51 61 => 4 4 6 9 11 11 15 16 22 25 28 36 37 45 51 59 61 (8)
15, 156 888 2015 => 156 269 382 495 608 721 834 888 1001 1114 1227 1340 1453 1566 1679 1792 1905 2015 (113)
8, -399 -35 -13 56 157 => -399 -347 -295 -243 -191 -139 -87 -35 -13 39 56 108 157 (52)
5, 3 3 3 => 3 3 3 3 (0)
这是代码高尔夫球,因此最短的条目将获胜。
rF<seq>
要用来解包两个元素的元组。