對於這個解決方案,我發現最好的方法是使用遞歸。
遞歸是指函數呼叫自身來解決問題的較小部分。這就像透過將一個大謎題分解成較小的、相同的謎題來解決它。每次函數呼叫自身時,它都會處理原始問題的一小部分。
遞歸有兩個主要部分:
基本情況:
這是遞迴停止的時候。這是問題的最簡單的版本。將其視為“球門柱”。一旦到達,函數就會停止呼叫自身並開始傳回結果。
在我們的例子中,這是當索引==方程式參數的長度。
遞迴案例:
這是函數呼叫自身來解決問題的較小部分的時候。
這就像每次都離基本情況更近一步。
在這個謎題中,目標是檢查是否可以透過在一系列數字之間應用運算符( 、 *、||)來得出目標數字。
這是挑戰:
嘗試在目前號碼和下一個號碼之間套用。
嘗試在當前數字和下一個數字之間應用 *。
嘗試使用||組合兩個數字(連接)。
繼續此過程,直到:
使用所有數字,結果等於目標(Base Case)
或
在沒有找到匹配的情況下探索所有可能性(遞歸情況)
您可以在這裡找到 Python 和 C# 的解決方案
一如既往,請隨時在 Twitter 上關注我,以獲取更多跨多種媒體的提示、解決方案、文章和部落格文章。
以上是AoC - DayBridge 修復的詳細內容。更多資訊請關注PHP中文網其他相關文章!