java吧 关注:1,238,408贴子:12,708,573
  • 14回复贴,共1

铁子们都是把汉诺塔递归啃下来了吗

只看楼主收藏回复

真的难,那些排序算法的递归没难到我,迷宫递归没难到,汉诺塔是真难到了,当年学c果断放弃,后面学的顺风顺水。铁子们怎么度过的,还是识时务者为俊杰放过他了


IP属地:广东来自Android客户端1楼2022-08-18 00:02回复
    要不来个简单的背包问题?


    来自iPhone客户端3楼2022-08-18 00:46
    回复
      万变不离其宗。捋捋思路,n小的时候多推几遍找找规律。


      IP属地:江苏来自Android客户端4楼2022-08-18 02:04
      回复
        自己debug


        IP属地:广东来自Android客户端5楼2022-08-18 03:37
        回复
          先玩一个成品游戏,总结一哈规律,就没那么难了


          IP属地:河南来自Android客户端6楼2022-08-18 05:34
          回复
            不就和数学题一样吗


            IP属地:广东来自Android客户端7楼2022-08-18 07:53
            回复
              看不懂就不看,去看树二叉树。所有的递归过程都可以抽象成树结构,你把树的递归吃透,递归就懂了。


              IP属地:北京来自Android客户端8楼2022-08-18 08:34
              回复
                讲递归不讲递归树是非常不合理的,树给你画出来一切逻辑清晰明了。其次纠正一个观点,所谓自己调用自己根本不重要,把它看成正常调用了一个函数就可以,之所以是同一个函数,无非是因为我接下来要解决的是同一个类型不同规模的问题而已。


                IP属地:北京来自Android客户端9楼2022-08-18 08:41
                回复
                  普通的递归理清就明白了 ,但在for循环里面递归感觉挺难弄懂的


                  IP属地:陕西来自Android客户端10楼2022-08-19 13:03
                  回复
                    那就先跳过呗


                    IP属地:上海来自Android客户端11楼2022-08-20 23:40
                    回复
                      汉诺塔不是挺基础的嘛……我给你拆开了讲。把A上的n(n>1)层塔挪到C上需要三步。1.把A上n-1层的塔挪到B;2.把A最底层的盘子挪到C;3.把B上n-1层塔挪到C


                      IP属地:湖南来自Android客户端12楼2022-08-21 23:36
                      回复
                        这样我们就把一个n层汉诺塔问题拆解成两个n-1层汉诺塔问题(第1、3步)和一个1层汉诺塔问题(第2步)。重复这个操作,最终可以把原问题拆解为很多个1层汉诺塔问题,而一层汉诺塔问题只需要直接挪,没有复杂的结构。因此我们通过递归把复杂问题简单化了。


                        IP属地:湖南来自Android客户端13楼2022-08-21 23:40
                        回复
                          难个🔨


                          IP属地:广东来自Android客户端14楼2022-08-22 07:13
                          回复
                            还行,先来个可持久化线段树吧


                            IP属地:浙江来自Android客户端16楼2022-08-22 23:25
                            回复