令是没有特定顺序的正整数列表,并且可以包含重复项。编写程序或函数,输出正整数的列表(排序不重要),这样将和合并为最小的列表,可以将其完全拆分为整数范围相同的整数,其中是最大的元素M L M [ 1 .. i ] i L
例
让L = [5,3,3,2,7]
。的最大元素L
为7
。特定整数出现的次数最多2
(3
出现2次)。因此,我们需要输出M
将允许完成的列表,L
以便我们可以构造2
从1
到的整数范围7
。
因此,我们需要输出M = [1,1,2,4,4,5,6,6,7]
,以便从1
to的每个整数7
出现2
次数。
输入和输出
- 使用与清单类似的任何语言。用于输入和输出的数据结构必须相同。
- 输入列表将仅包含正整数。
- 输入列表不会为空。
- 您不能假定输入列表已排序。
- 输出列表中的顺序并不重要。
测试用例
Input Output
[1] []
[7] [1, 2, 3, 4, 5, 6]
[1, 1, 1] []
[1, 8] [2, 3, 4, 5, 6, 7]
[3, 3, 3, 3] [1, 1, 1, 1, 2, 2, 2, 2]
[5, 2, 4, 5, 2] [1, 1, 3, 3, 4]
[5, 2, 4, 5, 5] [1, 1, 1, 2, 2, 3, 3, 3, 4, 4]
[5, 3, 3, 2, 7] [1, 1, 2, 4, 4, 5, 6, 6, 7]
计分
这是代码高尔夫球,因此最短的答案以字节为单位。
i
是的最大元素L
,这是规范中的错字。
M=[1,1,2,2,3]
的L=[3]
同时“即可以完全分割成的整数[1..i]相同的范围列表合并L和M的结果”?
[1,2]
。我将对其进行澄清,以便很明显它应该导致最小数量的范围。
i
的最大要素是?L
M