List<Integer> res;
public int[] printNumbers(int n) {
res=new ArrayList<>();
dfs(n,0,new StringBuilder());
int[] array=new int[res.size()];
for(int i=0;i<res.size();i++){
array[i]=res.get(i);
}
return array;
}
private void dfs(int n,int index,StringBuilder number){
if(index==n){
while(number.length()!=0&&number.charAt(0)=='0'){
number.deleteCharAt(0);
}
if(number.length()!=0) {
res.add(Integer.valueOf(number.toString()));
}
return;
}
for(int i=0;i<=9;i++){
number.append(i);
dfs(n,index+1,number);
if(number.length()!=0){
number.deleteCharAt(number.length()-1);
}
}
}
剑指offer17 打印从1到最大的n位数
于 2022-03-07 20:08:50 首次发布