//遞迴需要關注,每次遞迴達到的目的,包括影響了哪些全域性值,或者改變什麼全域性狀態;
//另外是輸入條件和邊界結束條件,輸入條件保證遞迴的輸入環境是否一致;
//結束條件,表明什麼時候結束,避免無限遞迴。
//最後是遞迴在函式中的位置,遞迴在函式開始,中間,末尾
//遞迴函式在函式中不同的位置,影響點: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...