第七天:桥梁修复
对于这个解决方案,我发现最好的方法是使用递归。
什么是递归?
递归是指函数调用自身来解决问题的较小部分。这就像通过将一个大谜题分解成较小的、相同的谜题来解决它。每次函数调用自身时,它都会处理原始问题的一小部分。
递归如何工作?
递归有两个主要部分:
基本案例:
这是递归停止的时候。这是问题的最简单的版本。将其视为“球门柱”。一旦到达,函数就会停止调用自身并开始返回结果。
在我们的例子中,这是当索引==方程参数的长度时。
递归案例:
这是函数调用自身来解决问题的较小部分的时候。
这就像每次都离基本情况更近一步。
谜题如何使用递归?
在这个谜题中,目标是检查是否可以通过在一系列数字之间应用运算符( 、*、||)来得出目标数字。
这是挑战:
尝试在当前数字和下一个数字之间应用 。
尝试在当前数字和下一个数字之间应用 *。
尝试使用||组合两个数字(连接)。
继续此过程,直到:
使用所有数字,结果等于目标(Base Case)
或
在没有找到匹配的情况下探索所有可能性(递归情况)
您可以在这里找到 Python 和 C# 的解决方案
一如既往,请随时在 Twitter 上关注我,以获取跨多种媒体的更多提示、解决方案、文章和博客文章。
以上就是AoC &#- DayBridge 修复的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系 yyfuon@163.com