【数据结构与算法 8,今天带你详细了解各组件原理




打眼一看,很low,很简单,4,3,2无疑。



为了验证我的聪明才智,输出一把吧



![](https://img-blog.csdnimg.cn/20200520103324125.png)



![](https://img-blog.csdnimg.cn/20200520103340869.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2d1b3J1aV9qYXZh,size_16,color_FFFFFF,t_70)



三、递归调用规则(很重要)

-------------



1、执行一个方法时,就创建一个新的受保护的独立空间(栈空间);



2、方法的局部变量是独立的,不会相互影响,比如变量n;



3、如果方法中使用的是引用类型变量(比如数组),就会共享该引用类型的数据;



4、递归必须向退出递归的条件逼近,否则就是无限递归,StackOverflowError;



5、当一个方法执行完毕,或遇到return,就会返回,遵守谁调用就将结果返回给谁,同时当方法执行完毕或return时,该方法也就执行完毕。



![](https://img-blog.csdnimg.cn/20200520103417513.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2d1b3J1aV9qYXZh,size_16,color_FFFFFF,t_70)



四、递归能解决什么样的问题

-------------



### []( )1、各种数学问题



比如八皇后问题、哈诺塔、阶乘问题、迷宫问题、球和篮子的问题(Google编程大赛)。



### []( )2、各种算法中也会使用递归



比如快排、归并排序、二分查找、分治算法。



### []( )3、栈解决的问题都可以用递归



代码更加简洁。



五、迷宫问题

------



![](https://img-blog.csdnimg.cn/20200520103624316.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2d1b3J1aV9qYXZh,size_16,color_FFFFFF,t_70)



### 1、代码实现



package dataStructure.recursion;

public class Labyrinth {

public static void main(String[] args) {

    //迷宫问题

    //0 表示该点没有走过 当为 1 表示墙  ; 2 表示通路可以走 ; 3 表示该点已经走过,但是走不通

    int[][] map = new int[8][7];

    for(int i=0;i<8;i++){

        for (int j = 0; j < 7; j++) {

            map[0][j] = 1;

            map[7][j] = 1;

            map[i][0] = 1;

            map[i][6] = 1;

        }

    }

    //设置挡板, 1 表示

    map[3][1] = 1;

    map[3][2] = 1;

    for (int i = 0; i < 8; i++) {

        for (int j = 0; j < 7; j++) {

            System.out.print(map[i][j]+" ");

        }

        System.out.println();

    }

    setWay(map,1,1);

    System.out.println("迷宫走过之后地图");

    for (int i = 0; i < 8; i++) {

        for (int j = 0; j < 7; j++) {

            System.out.print(map[i][j]+" ");

        }

        System.out.println();

    }

}



//使用递归回溯来给小球找路

//说明

写在最后

以上就是我的面试过程,为了这次面试,也收集了很多的面试题,反正我已经面过了,那就免费分享出来吧!

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

以下是部分面试题截图

写在最后

以上就是我的面试过程,为了这次面试,也收集了很多的面试题,反正我已经面过了,那就免费分享出来吧!

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

以下是部分面试题截图

Java程序员秋招三面蚂蚁金服,我总结了所有面试题,也不过如此

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值