ARTS打卡8.21-8.27

116 阅读3分钟

Algorithm

做一道算法题

题目:二叉树的最大深度,力扣链接: 🔗

示例如下:

输入:root = [3,9,20,null,null,15,7]

输出:3

思路

二叉树根节点的高度就是二叉树的最大深度,所以通过后序求根节点高度来求二叉树最大深度。

可以使用前序遍历,也可以使用后序遍历来解决;使用前序遍历求的是深度,使用后序遍历求的是高度;

  • 二叉树节点的深度:从根节点到该节点的最长简单路径边的条数或者节点数(取决于深度从0开始还是从1开始)
  • 二叉树节点的高度:从该节点到叶子节点的最长简单路径边的条数或者节点数。

递归法

  1. 确定递归函数的参数和返回值
int getdepth(TreeNode* node)
  1. 确定终止条件:为空节点,返回 0,表示高度为 0
if(node == NULL)  return 0;
  1. 确定单层递归的逻辑
int leftdepth = getdepth(node-left);         // 左
int rightdepth = getdepth(node->right);      // 右
int depth = 1 + max(leftdepth, rightdepth);  //中
return depth;

整体代码如下次:

class Solution {
public:
    int getdepth(TreeNode* node){
        if(node == NULL)    return 0;

        int left_depth = getdepth(node->left);
        int right_depth = getdepth(node->right);
        int depth = 1 + max(left_depth, right_depth);

        return depth;
    }

    int maxDepth(TreeNode* root) {
        return getdepth(root);
    }
};

Review

阅读并点评至少一篇英文技术文章

主要看 NLP 2023 ACL 的文章,链接: 🔗

论文的idea:

EAE (Event Argument Extraction,事件论元抽取) 是 EE (Event Extraction,事件抽取) 的一个重要子任务,EE 任务考虑了事件共现 (Event Co-occurrences,事件共同出现,意思是把事件出现的多条句子作为一个整体去考虑),取得不错的效果,那么 EAE 任务是否也可以采取类似的方式,从而使这两个任务之间的差别没那么大?(因为 EAE 本来就是 EE 领域的子任务)

所以在这个 paper 中,将 EAE 重新表述为表格生成问题,并将基于 SOTA 提示的 EAE 模型 PAIE扩展为非自回归生成框架,以同时提取多个事件的论点。

Technique/Tips

学习至少一个技术技巧

float Q_rsqrt( float number )
{
    long i;
    float x2, y;
    const float threehalfs = 1.5F;

    x2 = number * 0.5F;
    y  = number;
    i  = * ( long * ) &y; // evil floating point bit level hacking
    i  = 0x5f3759df - ( i >> 1 );  // what the fuck? 
    y  = * ( float * ) &i;
    y  = y * ( threehalfs - ( x2 * y * y ) );  // 1st iteration 
    // 2nd iteration, this can be removed
    // y  = y * ( threehalfs - ( x2 * y * y ) ); 

    return y;
}

以上函数是采用牛顿法,通过软件的方式进行求平方根倒数的操作。

以下这句,

i  = 0x5f3759df - ( i >> 1 );  // what the fuck? 

是一个近似操作,是采用牛顿法中的一步,精度可以达到很高。

Share

分享一篇有观点和技术思考的文章

关于高效学习的观点:

  • 挑选知识和信息源,应当具有以下特点:应该是第一手资料;权威性高,经过实践检验的;加入了自己的经验和思考。

  • 注重基础和原理:“勿在浮沙筑高台”,基础知识和原理知识是经过时间检验过的人类智慧的结晶。

  • 知识地图:联想不同知识点的异同,多提问。