遞迴函式理解

2021-10-17 16:26:01 字數 1065 閱讀 7327

//遞迴需要關注,每次遞迴達到的目的,包括影響了哪些全域性值,或者改變什麼全域性狀態;

//另外是輸入條件和邊界結束條件,輸入條件保證遞迴的輸入環境是否一致;

//結束條件,表明什麼時候結束,避免無限遞迴。

//最後是遞迴在函式中的位置,遞迴在函式開始,中間,末尾

//遞迴函式在函式中不同的位置,影響點:1.函式前面部分對遞迴輸入環境的影響;2.其遞迴的全域性結果對函式其他部分的影響。

//3.遞迴結果會影響到遞迴的輸入環境嗎?可能會影響一些全域性的狀態;

leetcode 547 

解答:int findcirclenum(vector>& isconnected) {

int numcircles = 0;

if(isconnected.empty()){

return numcircles;

int numcity = isconnected[0].size();

vectorflag(numcity,false);//標誌城市是否被找過

for(int i=0;iif(!flag[i]){

flag[i]=true;

findcirclefrompoint(i,isconnected,flag);

numcircles++;

return numcircles;

//找到與i城市相連的所有城市

void findcirclefrompoint(int i, vector>& isconnected, vector& flag){

int numcity = isconnected[0].size();

if(i>=numcity || i<0){

return;

for(int j=0;jif(j!=i && isconnected[i][j]){

flag[j]=true;

//i和j相鄰

isconnected[i][j] = 0;

//避免重複搜到i

isconnected[j][i] = 0;

findcirclefrompoint(j,isconnected,flag);

遞迴函式理解

package algorithms.sort public class middlesplitbyrecursion public static void middlesplitbytworecursion int a,int lo,int hi public static void main s...

Python 遞迴函式 理解漢諾塔

python的遞迴函式 理解漢諾塔 利用遞迴函式移動漢諾塔 defmove n,a,b,c if n 1 print move a,c else move n 1,a,c,b 先把a號樁當做起點樁,b號樁當做終點樁,c號樁當做中間樁,移動a號樁上面n 1個盤子到b號樁 move 1,a,b,c 然後...

SetBkMode函式理解

輸出的字串時,發現存在背景色,這樣的輸出是破壞背景的。那需要使用什麼方法來保持背景不變,而又能輸出紅色的字串呢?比如按鈕的文字顏色是黑色的,而背景是灰色的。這就需要使用setbkmode函式來設定drawtext函式的輸出方式,顯示裝置共有兩種輸出方式 opaque和transparent。opaq...