先对原数组维护一个limit的布尔数组 表示当前位后面的数位的最小值是否比可选数字中的最小值小。然后从第一位开始,用二分查找去可选数组中找到≤该数位值的最大值,如果最大值小于数位值,则直接填写该最大值,后面全部设为9。否则,判断limit,如果为true,表示该位置无法选择跟数位相同的值,填写最大值前一位数,后面全部设为9;如果为false,则填写该数位值,并继续下一位的选择。