20200411刷題總結

2021-10-23 05:39:11 字數 1976 閱讀 8324

求樹的最大深度

對稱二叉樹

路徑總和

1思路,自頂向下:

int answer;

// don't forget to initialize answer before call maximum_depth

void

maximum_depth

(treenode* root,

int depth)if(

!root-

>left &&

!root-

>right)

maximum_depth

(root-

>left, depth +1)

;maximum_depth

(root-

>right, depth +1)

;}

思路,自底向上:

int

maximum_depth

(treenode* root)

int left_depth =

maximum_depth

(root-

>left)

;int right_depth =

maximum_depth

(root-

>right)

;return

max(left_depth, right_depth)+1

;// return depth of the subtree rooted at root

}

ps:這種思路好理解吧,求根節點的深度,只需要求左子樹和右子樹的深度最大值+1。

2思路,遞迴(詳見注釋):

/**

* definition for a binary tree node.

* struct treenode

* };

*/class

solution

private

:bool

ismirror

(treenode* t1, treenode* t2)

};

思路,迭代(和上面類似,只不過用queue實現):

/**

* definition for a binary tree node.

* struct treenode

* };

*/class

solution

return

true;}

};

3思路,dfs

/**

* definition for a binary tree node.

* struct treenode

* };

*/class

solutionif(

!root-

>left &&

!root-

>right)

return

false

;//到葉子節點,val!= sum ,直接return false

}return

(dfs

(root-

>left, sum-root-

>val)

||dfs

(root-

>right, sum -root-

>val));

}bool

haspathsum

(treenode* root,

int sum)

};

思路,遞迴:

/**

* definition for a binary tree node.

* struct treenode

* };

*/class

solution

};

leetcode 刷題記錄20200411 DP

題目 給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。演算法解析 1 暴力法 基於字串每一位往兩邊找到最長回文字串 python class solution def longestpalindrome self,s str str 暴力法,從i位開始向兩邊找,...

筆試刷題總結

今天刷了一些筆試題,以下是刷完筆試題後看到的相關知識點的解析,做個小結。1 多型主要以兩種形式,靜態多型和動態多型,靜態多型主要實現了函式過載和運算子過載。動態多型主要實現了虛函式。虛函式是動態聯編,程式在執行的過程中確定呼叫哪乙個函式。2 int s 8 定義乙個指標陣列,該陣列中每個元素是乙個指...

Java刷題總結

public class hasstatic a.程式通過編譯,輸出結果為 x 102 b.程式通過編譯,輸出結果為 x 103 c.10行不能通過編譯.因為x星私有靜態變數 d.5行不能通過編譯.因為引用了私有靜態變數 解析 同乙個類內,private變數可以訪問,所以cd錯。由於x是static...