数字列表被称为单调递增(或不递减),因为每个元素都大于或等于它之前的元素。
例如, 1, 1, 2, 4, 5, 5, 5, 8, 10, 11, 14, 14单调增加。
给定正整数的单调递增列表,该整数具有任意数量的空白点,表示为 ?,用正整数填充空点,以使列表中存在尽可能多的唯一整数,但它保持单调递增。
可能有多种方法可以实现此目的。任何有效。
输出结果列表。
例如,如果输入是
?, 1, ?, 1, 2, ?, 4, 5, 5, 5, ?, ?, ?, ?, 8, 10, 11, ?, 14, 14, ?, ?确保没有空白点的列表将单调增加
1, 1, 2, 4, 5, 5, 5, 8, 10, 11, 14, 14您的任务是为每个整数分配正整数
?以使列表中不同整数的数量最大化,同时保持其不变。一项无效的作业是
1, 1, 1, 1, 2, 3, 4, 5, 5, 5, 5, 5, 5, 5, 8, 10, 11, 14, 14, 14, 14, 14因为,尽管它不减量,但只比输入多一个唯一的整数,即
3。在此示例中,可以插入六个唯一的正整数并保持列表不变。
几种可能的方法是:1, 1, 1, 1, 2, 3, 4, 5, 5, 5, 6, 7, 8, 8, 8, 10, 11, 12, 14, 14, 15, 16 1, 1, 1, 1, 2, 3, 4, 5, 5, 5, 5, 6, 6, 7, 8, 10, 11, 13, 14, 14, 20, 200这些(以及许多其他)中的任何一个都是有效的输出。
所有空白点都必须填写。
可以插入的整数没有上限。如果以科学计数法打印非常大的整数也可以。
零不是正整数,切勿插入。
在地方?,你可以使用任何一致的值不是一个正整数,如0,-1,null,False,或""。
以字节为单位的最短代码获胜。
更多例子
[input]
[one possible output] (a "*" means it is the only possible output)
2, 4, 10
2, 4, 10 *
1, ?, 3
1, 2, 3 *
1, ?, 4
1, 2, 4
{empty list}
{empty list} *
8
8 *
?
42
?, ?, ?
271, 828, 1729
?, 1
1, 1 *
?, 2
1, 2 *
?, 3
1, 3
45, ?
45, 314159265359
1, ?, ?, ?, 1
1, 1, 1, 1, 1 *
3, ?, ?, ?, ?, 30
3, 7, 10, 23, 29, 30
1, ?, 2, ?, 3, ?, 4
1, 1, 2, 3, 3, 3, 4
1, ?, 3, ?, 5, ?, 7
1, 2, 3, 4, 5, 6, 7 *
1, ?, 3, ?, 5, ?, ?, 7
1, 2, 3, 4, 5, 6, 7, 7
1, ?, ?, ?, ?, 2, ?, ?, ?, ?, 4, ?, 4, ?, ?, 6
1, 1, 1, 1, 1, 2, 3, 4, 4, 4, 4, 4, 4, 5, 6, 6
98, ?, ?, ?, 102, ?, 104
98, 99, 100, 101, 102, 103, 104 *