完成的关键:1)抽象成递推公式 2)终止条件
快速理解问题递归的例子:如果一个问题A可以分解为若干个子问题,B、C、D,你可以假设子问题B、C、D已经解决,在此基础上思考如何解决问题A。而且你只需要思考问题A与子问题B、C、D两层之间的关系即可,不需要一层一层往下思考子问题与子子问题,以及子子问题与子子子问题之间的关系,屏蔽掉递归细节,这样理解起来就简单多了。

注意:不用想一层层的调用关系,不要试图用人脑去分解递归的每个步骤。人脑没办法想清楚整个“递”和“归”的过程,计算机擅长做重复的事情,所以递归正和它的胃口,而人脑更喜欢平铺直叙的思维方式,我们总想把递归平铺展开,脑子里就会一直循环,一层一层往下调,然后再一层一层返回,试图想搞清楚计算机每一步是如何执行的,这样就很容易被绕进去。

Author

skzeng

Posted on

2025-07-22

Updated on

2025-07-22

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.

Comments

You forgot to set the shortname for Disqus. Please set it in _config.yml.

You need to set client_id and slot_id to show this AD unit. Please set it in _config.yml.