我们称一个数列中的某个数为局部极大值,如果它在数列中的前一个数和后一个数都严格小于它。类似地,称一个数为局部极小值,如果前一个数和后一个数都严格大于它。局部极大值和局部极小值统称为局部极值。注意,数列的第一个元素和最后一个元素不能成为局部极值。
现在给定一个部分缺失的数列,其中某些位置上的数丢失了。已知所有丢失的数都来自一个给定的可用数字集合,每个可用数字最多使用一次。你的任务是填充缺失的位置,使得填充完成后整个数列的局部极值总数尽可能少。如果有多种填充方案都能达到最少的局部极值数,则选择字典序最小的方案:即首先让第一个数尽可能小;若还有多种,则让第二个数尽可能小;依此类推。