[LeetCode] Path Sum II

好久沒寫題目惹,最近上班上著就累了XD

其實也不是說很忙,但是很緊繃就是了

traverse binary tree 的題目

其實還蠻簡單的 就一路把vector path往下傳,並把該節點的val塞入vector

在leaf的地方判斷sum是不是等於0

class Solution {
public:
    
    vector<vector<int>> ans;
    
    vector<vector<int>> pathSum(TreeNode* root, int sum) {
    
        vector<int> path;

        bpathSum(root, sum, path);    
        return ans;
    }
    
    void bpathSum(TreeNode* node, int sum, vector<int> path) {
        
        if(!node)
            return;
        
        path.push_back(node->val);
        
        if(node->left != NULL)
            bpathSum(node->left, sum - node->val, path);
        
        if(node->right != NULL)
            bpathSum(node->right, sum - node->val, path);
        
        if(sum == node->val && node->right == NULL && node->left == NULL)
            ans.push_back(path);
        
        return;
    }
};

 

前幾天跟學長討論 DL,ML

其實跟這些傳統在上的data struct, algorithm差別蠻多的,以前CS同學好像都不是很在乎數學方面的知識

但是DL,ML可以看到大量運用微積分、機統方面的知識

gradient decent就很常用,但有多少人記得微積分下學期的時候有上

能懂數學的人都是強者阿,想到以前高中好幾個神人數學就好生羨慕,我媽怎麼沒幫我生出這種大腦,肯定是基因不好XD