剑指Offer 12 打印1到最大的n位数

题目描述

输入数字n,按顺序输出1到n位的最大十进制数;比如输入3,就输出1,2,3~999;

思路

全排列

代码

源代码就不写了,只写全排列的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
static void PermutationSequence (int n)
{
int ps[] = new int[n];
solution(ps,0);
}
static void solution(int ps[], int index)
{
if (index==ps.length) //已经赋值给了最后一位
{
System.out.println(Arrays.toString(ps));
return;
}
for (int i = 0 ; i<10;i++)
{
ps[index]=i; //我已经赋值给了index这一位
solution(ps,index+1); //你赶紧去解决下一位
}
}

收获

1.递归好难。。。。。。。