深度优先搜索之n个数的排列组合

思路:方法一:可直接用暴力枚举法

方法二:dfs

此处列出n为3的情况

//step=1设为第一个桶,=2,设为第二个桶,一次类推
public class Algotirhm{
static int n=3;
static int []arr=new int[n+1];
static int []book=new int[n+1];
public static void DFS(int step){
if(step==(n+1)){                        //临界条件前n个桶已放数,当temp==n+1时,表示该输出了

for(int i=1;i<=n;i++)
System.out.print(arr[i]);
System.out.println();
return;
}
for(int i=1;i<=n;i++){
if(book[i]==0){   //==0 表示没放
book[i]=1;   //标记已放
arr[step]=i;//表示第step个桶放的数为i
DFS(step+1);
book[i]=0;//取消时,要设为没放
}
}
return;
}

public static void main(String[] args) {
Scanner s=new  Scanner(System.in);

DFS(1);

}
}

全部评论

相关推荐

渴望wlb的牛油果很...:直说卡第一学历不就行了 非得拐弯抹角
点赞 评论 收藏
分享
后端转测开第一人:再怎么劝退也没用的 某些群体总以为在一个幸存者偏差的软件上看见了极少数秋招上岸某个大厂的个例就幻想上了 事实上自己打开ssob沟通1000+连个小厂面试都没
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务