备赛蓝桥----DFS篇

目录

排列数字

n-皇后问题


 小羊简介:


博客主页:小羊不会飞

年龄:20    大二在读   

爱好:干饭,运动,码代码,看书,旅游

即将更新:

1、BFS算法

2、手把手带你搭建个人博客网站

感兴趣的朋友,赶紧上车吧!!

欢迎关注点赞收藏留言

有任何疑问,欢迎留言讨论!!!


前言:

       啊啊啊,小羊开更了,最近忙完了软著的事情(见下图),接下来终于开始准备算法的学习了,如果有时间的话,博主打算寒假出一期"手把手创建网站"的博客,感兴趣的小伙伴欢迎关注!

       好了,回归正题,博主最近学习了一下DFS算法,也算是弄清楚了上个学期的一些小疑惑吧,刷过蓝桥真题的小伙伴应该都知道DFS、BFS的重要性,所以今天博主会通过两个小例题来带大家学习一下DFS算法,下期更新BFS算法,敬请期待!!

备赛蓝桥----DFS篇_第1张图片

排列数字

备赛蓝桥----DFS篇_第2张图片

备赛蓝桥----DFS篇_第3张图片

import java.util.Scanner;

/**
 * @author yx
 * @date 2022-01-29 14:23
 */
/*
排列数字问题
 */
public class DFS_1 {
    static boolean st[]=new boolean[10];//这两个数组是公用的所以要设置成静态的
    static int path[]=new int[10];

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n=scanner.nextInt();
        dfs(0,n);
        return;
    }
    static void dfs(int u,int n){
        if(u==n){//当遍历到最底部时,输出路径上所有的数
            for (int i=0;i

备赛蓝桥----DFS篇_第4张图片

n-皇后问题

备赛蓝桥----DFS篇_第5张图片

备赛蓝桥----DFS篇_第6张图片

import java.util.Scanner;

/**
 * @author yx
 * @date 2022-01-29 23:11
 */
/*
八皇后问题
 */
public class DFS_2 {
    static char g[][]=new char[4][4];
    static boolean col[] = new boolean[20];
    static boolean dg[] = new boolean[20];//对角线数组
    static boolean udg[] = new boolean[20];//反对角线数组

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n=scanner.nextInt();
        for (int i=0;i

dg[ u+i]、udg[n-u+i]内下标数字的解析

 备赛蓝桥----DFS篇_第7张图片

备赛蓝桥----DFS篇_第8张图片

 总结:

    DFS的核心思想就是递归,上面这两个例子多花时间琢磨琢磨,静下心来感受算法的美。

你可能感兴趣的:(算法修炼从0到1,深度优先,算法,蓝桥杯)