import java.util.*;
public class Main {
public static void main(String[] args) {
int[] A = {1,2,4,9};
int x = 2533;
int i = new Main().maxNum(A,x);
System.out.println(i);
}
private int max = 0;
private TreeSet<Integer> set = new TreeSet<>();
//传入 数组A 和 x
public int maxNum(int[] A, int x){
for (int i : A) {
set.add(i);
max = Math.max(max,i);
}
return dfs(x-1);
}
int dfs(int x){
if (x<=0) return 0;
int res = 0, is = -1;
char[] chars = (x + "").toCharArray();
for (char c : chars) {
if (is!=-1){
res = res*10 + max;
continue;
}
if(set.contains(c-'0')){
res = res*10+(c-'0');
continue;
}
if(set.lower(c-'0')!=null) res = res*10+set.lower(c-'0');
else res = dfs(res-1)*10+max;
is = 1;
}
return res;
}
}