關於遞迴的使用記錄

2022-05-14 03:45:58 字數 596 閱讀 2168

此篇部落格**於極好的文章,解決了遞迴入門的疑難點。

何為遞迴?程式反覆呼叫自身即是遞迴。

我自己在剛開始解決遞迴問題的時候,總是會去糾結這一層函式做了什麼,它呼叫自身後的下一層函式又做了什麼…然後就會覺得實現乙個遞迴解法十分複雜,根本就無從下手。

相信很多初學者和我一樣,這是乙個思維誤區,一定要走出來。既然遞迴是乙個反覆呼叫自身的過程,這就說明它每一級的功能都是一樣的,因此我們只需要關注一級遞迴的解決過程即可。

如上圖所示,我們需要關心的主要是以下三點:

整個遞迴的終止條件。

一級遞迴需要做什麼?

應該返回給上一級的返回值是什麼?

因此,也就有了我們解遞迴題的三部曲:

找整個遞迴的終止條件:遞迴應該在什麼時候結束?

本級遞迴應該做什麼:在這一級遞迴中,應該完成什麼任務?

一定要理解這3步,這就是以後遞迴秒殺演算法題的依據和思路。

但這麼說好像很空,我們來以題目作為例子,看看怎麼套這個模版,相信3道題下來,你就能慢慢理解這個模版。之後再解這種套路遞迴題都能直接秒了。

關於遞迴的記錄

由於專案的原因接觸了三種資料庫,分別是oracle mysql postgresql,在此記錄一下三種資料庫遞迴查詢的用法 以查詢某節點下所有子節點為例 1 oracle 有自帶的遞迴函式,一般最上級我都不用遞迴,直接查全部 select t.from sys postorg t start wit...

關於遞迴寫法的精妙記錄

之前對遞迴的了解就限制於 n!之類的用法,在學習python的過程中,接觸到了關於漢諾塔的移動的遞迴介紹,覺得遞迴實在是神奇。這種思想的迸發我希望能記錄下來,並激勵。def move n,a,b,c if n 1 print a,c return move n 1,a,c,b print a,c m...

關於遞迴的簡單使用

遞迴簡單使用 使用的軟體為 intellij ideapublic class teacher 開始部分 private static string start string menu1 string menu2 new string system.out.println 歡迎進入獎客富翁系統 fo...