1. 程式人生 > >對於遞迴的理解

對於遞迴的理解

有很多時候我們可能會遇到使用遞迴的問題來解決問題,其中我感覺遞迴最重要的是把大的問題一步步地進行分解成小的問題

所以首先要對問題進行分割,其中可能涉及到了一些分割問題的技巧

其次,分割成小問題之後我們要確定遞迴的方法中的引數,有多少個變數在變化,需要傳進方法中引數有多少,遞迴呼叫的時候引數該如何變化這些都是需要進行詳細分析之後需要確定的(每個小問題處理的方法是一樣的

第三個是遞迴是自己呼叫自己所以不可能無休止地呼叫,所以要設計遞迴的出口,這也就是問題的邊界值,假如沒有考慮完全可能會造成越界的問題

遞迴呼叫遇到出口呼叫完成之後,假如方法有返回值那麼會將上一層的結果層層返回直到求解出一開始呼叫該遞迴函式的位置的結果,最終多次遞迴呼叫更新完成所要求解的結果之後返回(層層更新