摘要: 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root = [6, 阅读全文
posted @ 2021-04-16 22:35 noob_stu 阅读(63) 评论(0) 推荐(0)
摘要: 出自kaggle大佬@Alexander Ryzhkov,原文地址 大概意思就是给没标签的数据(unlabelled data,有的时候可以是官方给的test set)打上标签,流程如下: 用带着标签的训练集训练模型 用上述训练好的模型预测没标签的数据来造伪标签,然后把pseudo labelled 阅读全文
posted @ 2021-04-15 22:50 noob_stu 阅读(684) 评论(0) 推荐(0)
摘要: 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 1: 输入:nums = [10,9,2,5,3,7,101,18] 阅读全文
posted @ 2021-04-15 17:23 noob_stu 阅读(61) 评论(0) 推荐(0)
摘要: 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。 示例 1: 输入:root = [4,2,6,1,3]输出:1示例 2: 输入:root = [1,0,48,null,null,12,49]输出:1 1.解题思路 方法一:遍历所有结点并保存到一个list中,然后 阅读全文
posted @ 2021-04-14 22:36 noob_stu 阅读(55) 评论(0) 推荐(0)
摘要: 1.先序遍历 遍历过程如下: 访问根节点(可以是print或其他的操作) 先序遍历其左子树 先序遍历其右子树 很显然这里可以利用递归程序进行实现,大致的代码如下 def pre_order_traversal(root): if root: print(root.val) pre_order_tra 阅读全文
posted @ 2021-04-14 15:19 noob_stu 阅读(55) 评论(0) 推荐(0)
摘要: 1.顺序存储结构 对于完全二叉树,按从上到下、从左到右的顺序进行存储,那么它们的编号显然是有一定规律的。 若有某个非根结点的序号为i(i>1)那么它的父结点序号可以表示为向下取整的i/2即floor(i / 2) 对某个序号为i的结点,它的左、右孩子序号可以分别表示为i * 2、i * 2 + 1( 阅读全文
posted @ 2021-04-14 14:36 noob_stu 阅读(271) 评论(0) 推荐(0)
摘要: 1.二叉树的定义 二叉树T:一个又穷的结点集合。 这个结点集合可以为空,若不为空则则它是由根节点及称为其左子树TL和右子树TR的两个不相交的二叉树组成。那么也就是说二叉树具有五种基本形态,如下图所示。 图 二叉树的五种基本形态 二叉树与一般的度为2的树是有区别的:二叉树的子树有左右之分。 2.几种特 阅读全文
posted @ 2021-04-13 22:54 noob_stu 阅读(588) 评论(0) 推荐(0)
摘要: 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。 1.解题思路 利用递归函数解决这个问 阅读全文
posted @ 2021-04-13 22:18 noob_stu 阅读(47) 评论(0) 推荐(0)
摘要: 树;树的定义;树的表示 阅读全文
posted @ 2021-04-13 16:11 noob_stu 阅读(166) 评论(0) 推荐(0)
摘要: 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 1.解题思路 方法一:循环迭代(双指针法) ①定义双指针cur和pre,一前一后,另外,由于最后我们会让pre.next = cur实现反转,因此我们还需要一个temp指向pre 阅读全文
posted @ 2021-04-13 12:04 noob_stu 阅读(52) 评论(0) 推荐(0)