00:00
说一下刚才这个调用方法呢,我这调的是问题,有有有点小问题啊,我是直接很自然的一写这个max就跑到人家那个系统自自己写的这个方法去了啊,其实我这想想讲的就是我们自己写那自己写,当然我这应该写个这个max,那最好这样取个名字跟他不一样,我叫my max。啊,My max,那这个你写了my max呢,那下面这些对不对,你都得变化一下就可以了,好,这样子就更更好了啊,来写my max,把这个历史的放进去,对刚才同学提醒的很对啊。那那这个再再咱们再试一下19,再来一个零,再来一个89,再来一个负100,好,这个呢,应该返回一个89就对了。OK,我们运行一下。OK,我们运行下,我们发现呢,返回的就是89没问题啊,代码是没有问题的,代码是没问题,但是呢,我们用的是递归的方式来解决的,各位好同学们,我们继续来学习,下一个呢,我们再来写一个用递归翻转字符串的案例,对,那么同学们,你们以前让你们写一个字符串的翻转,你们会怎么做呀?
01:16
是不是又是那个找到中间那个纸,然后11111顿那个负循环是吧,诶你看人家递个递归显得非常的简洁高效啊,很优雅,老师怎么优雅呢,我都看不出来哦,你都不知道为什么人家就就给你翻转过来了,看我接收一个字符串,如果这个长度等于一返回它,否则把这个尾部写到前面,把头部写到后面,完了已经。你都不知道怎么写完的,对吧,你看这个很简洁,我们来玩一把呗,我们来玩一把,看看他是怎么做的呀,翻转字符串递归翻转字符串。OK,我们待会再说使用陷阱啊,不着急,Resivesives rivers尺寸。
02:02
各位,如果你将来做开发,做这个面试的时候啊,你用一个递归来完成那个老对内面试官会觉得很很特别哈,因为一般呢,我们都是。嗯,把破循环,然后拆解成一个字符串头找到中间,然后颠倒颠倒颠倒,对吧,很少看到有递归来完成的,来玩一把呗,那么看看这个递归怎么做呢?你看这个是使用递归。完成对字符串的一个翻转。怎怎么翻转呢,大家看啊,我把这个代码稍微的这样给他整理一下,看的更清晰一点。怎么个意思呢,大家看啊,它是这样子的,如果你看这个词,就是你计算机怎么做,至于你计算机做这个就行了,怎么做我不管你爱怎么做怎么做。好,那就是什么呢?这个是如果这个长度长度长度为一,那就是你了,就是它。你只有一个,那你就直接返回就行了,就返回。
03:03
你一个不存在反转吗?你A那怎么翻转,还是自己那下面呢,你看一旦翻转了,我把这个尾部,因为尾部就后面那一坨嘛,那么尾部进行翻转,把这个尾的提到前面去,把头扔在后边去。你看就是如果不是呢,啊,如果这个长度。长度。啊长度,诶长度啊,长度这个大于一就干什么呢,就。就执行就执行这个这样一句话,就是把尾部拎到后面去,这里面它会递规的在不停的拆拆拆拆拆啊,然后呢,这个头呢,就在前面去了,他这个执行的这个应该说更加的有意思啊,就更加意思,速度也没有任何影响,速度也没有任何影响,那么这个就执行这段话啊,执行该这句话。句这句话啊,这句话你看这个都地方,你明显感觉到他不是指定性质的,就不是像我们以前写的,你第一步做什么,第二步是什么,他不是就说你这样做就行了,那么我们来玩一把,我们来玩一把,看看能否呃运行起来啊,比如说我这里呢,我这里来一个字符串吧,Val Val是准。
04:20
啊,是最。SSTR,然后呢,给他来一个hello hello war就写简单一点哈,然后呢,Rivers啊,Rivers直接把这个尺寸放进去,最后这个结果啊,我们打印出来大家看一下。然后呢,我们看这个结果是不是被翻转过来了啊,他应该是O。呃,L eh执行一下,同学们请看效果。OK,我们看这个效果呢,我们想的应该是一样的啊,非常的简洁啊,如果大家递归用好了代码,还是看起来比较有意思啊,这是递归的方式来完成的,好,我把这个呢也给同学们阐述到这里啊,这是递归的方式来完成的,好我们再看一个小案例,就是求这个求这个阶层。
05:12
啊求这个阶层呢,大家知道它是,呃,一乘二乘三乘四乘五,这个阶层呢,也很简单,这个你看也是用递归,如果N等于零。就是一,否则就是N乘以这个N减一,至于你里面怎么去算,那是你的事。啊,这个也非常简单,我们来运行一下求这个阶层。来走一段代码rivers啊,用这个递归的方式。求这个阶层好,那么这个阶层这个单词呢,我就直接从这来拿过来啊。好,放到这儿来,F。然后呢,我们来个object,我们运行一下就可以了。那写了一个函数,求阶层啊,求出这个阶层。
06:01
接。乘好的,那代码呢?很简单,如果N等于一怎么样?否则又怎么样?好,我把它写到这里来。好,我们来执行一下,直接执行啊battery,比如说我要求十的阶层,那其实就是一乘二乘到N乘到这个十,想这个结果我们看一下走。运行。啊,运行这个结果呢,大家一看也是这个值应该没有错是吧,应该,那我们测一个小一点的看对不对,呃,如果乘到四。乘到三吧,就是一乘二再乘三。那就应该是六。啊,正确的六正确的好的,那这是我们取得这个函数式编程的又一个阶层的乘法,那这个案例举完了过后呢,我有一个东西要给他交代了,递归虽然很好,也很优雅,但是使用是有陷阱的,我先把这个板述一下,我们说再说这个陷阱是什么地方啊来。
07:06
先把刚才老师讲的这个整一下,这个地方是刚才讲的是,呃,这个是干什么的呀?这个是求最大值是吧?这个是求最大值,好,我把另外的两个也给大家拿过来,一个呢是翻转字符串,这是我们的又一个应用案例,对吧,翻转字符串。好,我们又写到这儿来吧。翻转字符串又来一个标题三,这个是递归翻转字符串。翻转字符串,那么翻转字符串这个案例呢,我们直接拿过来,就它。好,给大家来一个小的一个东西,紧接着我又举了一个例子,举什么呢?就是使用递归来求这个阶层,对吧,OK。好,我们来看看这段代码,注意听啊,这个是递归求出,求出阶层。
08:06
不着急啊,求阶层的代码呢,我这也有对也有在这里。在这里,OK。好了,这是我们抛砖引玉的讲了一下,递归来完成一些。功能,或者完成一些任务,那么下面呢,我们先把这块截断。
我来说两句