这是这道题的整体递归搜索过程
我们使用两个数组,state[]和used[],当这个数字使用过后,就给used[]标为true, state[]的值设置为在这一位置上的具体数字。
private static int n;
private static int[] state=new int[10];//0还没放,1~N表示放的具体数字
private static boolean[] used=new boolean[10];//这个数是否用过
一开始,先看第一位数,我们可以选定1,然后state[1]=1, used[1]=true。继续往下看,我们有两种选择,我们选择把第二位放上2,同时,state[2]=2, used[2]=true. 第三个位置的数字也同理。这个时候k继续增加,超过了n,触发输出,直接输出这一组数据(根据state[])
先看第一个数,