算法康复训练18


1. 知识点总结

题目 难度 知识点
买股票的最佳时机 🐸 数组
二叉树中的最大路径和 🐸🐸🐸 树+递归需要回炉

2. 分题题解

2.1 买股票的最佳时机

这题不会可以隐身了🤪,过~

2.2 二叉树中的最大路径和

  • 失败的简单中序遍历——错误原因是子节点回到根节点(路径不通的问题)
class Solution {
public:
    int ans=-INT_MAX;
    int preSum=0;
    bool flag=false;
    void inTravel(TreeNode *root){
        if(root==NULL){
            return;
        }else{
            inTravel(root->left);
            //操作:
            cout<<"当前结点:"<<root->val<<" \n";
            if(root->val<0){
                ans=max(ans,root->val);
                if(flag){
                    ans=max(ans,preSum);
                }
                preSum=0;
            }else{
                flag=true;
                preSum+=root->val;
            }
            inTravel(root->right);
        }
    }
    int maxPathSum(TreeNode* root) {
        //最大路径和
        inTravel(root);
        if(flag){
            
            ans=max(preSum,ans);
        }
        return ans;
    }
};
  • 看了题解才知道如何正确递归,话说回来注意结点在路径中只能走一次这个条件在递归中的使用
class Solution {
public:
    int ans=-INT_MAX;
    int getMax(TreeNode*root){
        if(root==NULL){
            return 0;
        }else{
            int left=max(getMax(root->left),0);
            int right=max(getMax(root->right),0);
            int sum=right+left+root->val;
            ans=max(ans,sum);
            //限制每个结点只能走一次
            return root->val+max(right,left);
        }
    }
    int maxPathSum(TreeNode* root) {
        //最大路径和
        getMax(root);
        return ans;
    }
};

3. 参考资料

碎碎念:

操作系统结束后准备给自己放两天半的假期,然后所谓的假期就是做模式识别的大作业、写图像作业、完成形势与政策考试以及团委一些零零碎碎的事情(今天说是要换届了,开森!)

模式识别的作业我选的方向做的是一个人脸表情识别系统((。・∀・)ノ゙嗨为啥不能做NLP捏,那样俺就不用从头再写一遍了哇),基于CNN和torch,很有意思的项目,遗憾的是训练跑的次数不多,cpu跑的(本来在 蹭实验室的GPU但是后来好像内存不够被卡了?想着学长学姐优先级高所以就转回本地啦),精度最后控制到了72%,属于正常水平!


文章作者: Gao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Gao !
评论
  目录