1. Algorithm
路徑總和(簡單)
描述:
給定一個(gè)二叉樹和一個(gè)目標(biāo)和,判斷該樹中是否存在根節(jié)點(diǎn)到葉子節(jié)點(diǎn)的路徑,這條路徑上所有節(jié)點(diǎn)值相加等于目標(biāo)和。
葉子節(jié)點(diǎn)是指沒有子節(jié)點(diǎn)的節(jié)點(diǎn)。
示例:
給定如下二叉樹,以及目標(biāo)和 sum = 22,
5
/ \
4 8
/ / \
11 13 4
/ \ \
7 2 1
思路:
從根節(jié)點(diǎn)開始遍歷,每次遍歷時(shí)從目標(biāo)和減去當(dāng)前節(jié)點(diǎn)值,當(dāng)作子節(jié)點(diǎn)要湊的和,在葉子節(jié)點(diǎn)判斷是否剛好湊齊。
class Sulution {
pbulic boolean hasPathSum(TreeNode root, int sum) {
if (root == null) {
return false;
}
if (root.left == null && root.right == null) {
return sum == root.val;
}
int csum = sum - root.val;
return hasPathSum(root.left, csum) || hasPathSum(root.right, csum);
}
}
分析:
- 時(shí)間復(fù)雜度:O(N)
- 空間復(fù)雜度:O(log(N)) or O(N)
2. Review
A 3-Minute Hack for Focus You’ve Probably Never Heard Of 你從未聽說過的 3 分鐘聚焦大法
作者一直無法專注工作,同事分享了一個(gè)方法給他——雙耳節(jié)拍。本質(zhì)上,雙耳節(jié)拍是重復(fù)播放的音樂。它沒有實(shí)際的節(jié)拍,而是在大腦中產(chǎn)生的同時(shí)播放兩個(gè)不同頻率的音調(diào)。
我一直在用的產(chǎn)品叫「小睡眠」,它主要功能是助眠,但是也有聚焦和放松模式。配合降噪耳機(jī),很快便進(jìn)入高效工作中。
3. Tip
接手維護(hù)老項(xiàng)目,開發(fā)者代碼設(shè)計(jì)得爛,不知道怎么代碼怎么調(diào)用,也無處安放 debug 點(diǎn)。這時(shí)只要創(chuàng)建一個(gè)異常,打印它的 stack track,就能夠?qū)φ{(diào)用時(shí)序一目了然。查看源碼時(shí)也可以通過這種辦法確定調(diào)用流程。
4. Share
CS-Notes GitHub 100k+ star 的項(xiàng)目,技術(shù)面試必備基礎(chǔ)知識、Leetcode、計(jì)算機(jī)操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)、系統(tǒng)設(shè)計(jì)、Java 等。
面試前可以刷一刷,主要是增加知識面的廣度。