LCA模板题,用倍增法去写 首先把每一个节点的向上$2^i (i \in \mathbb N)$个祖先给枚举出来 再把要求公共祖先的两个节点拉到同一深度 向上不断利用倍增一起跳跃同样层数到他们各自的非公共祖先的祖先节点 最后他们一起到达共同祖先节点的子节点,再同时向上走一位即可 在这个过程中,同时维 ...
分类:
其他好文 时间:
2019-12-29 13:26:49
阅读次数:
63
明天去农大打比赛~应该是2019年最后一场比赛~整理一下模板 ...
分类:
其他好文 时间:
2019-12-27 21:42:16
阅读次数:
82
1.除自身以外数组的乘积 给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 示例: 输入: [1,2,3,4]输出: [24,12,8,6]说明: 请不要使用除法,且在 O(n ...
分类:
其他好文 时间:
2019-12-20 20:52:34
阅读次数:
90
* @lc app=leetcode.cn id=236 lang=cpp * * [236] 二叉树的最近公共祖先 * * https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/description/ * ...
分类:
其他好文 时间:
2019-12-06 13:49:58
阅读次数:
88
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root = [6, ...
分类:
其他好文 时间:
2019-12-02 20:43:24
阅读次数:
94
一道例题: 最近公共祖先 Description 给你一棵有根树,要求你计算出m对结点的最近公共祖先。 Input 输入文件的第一行包含两个整数n和m(2<=n,m<=200,000),其中n为结点个数,结点编号为1到n;m表示询问次数。 接下来n-1行,每行两个整数x和y,表示结点x是结点y的父亲 ...
分类:
其他好文 时间:
2019-11-27 19:14:03
阅读次数:
67
class Solution: def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode': if p.val>q.val: p,q=q,p if q.val<root.va ...
分类:
其他好文 时间:
2019-11-19 17:11:48
阅读次数:
93
题目链接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/ 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表 ...
分类:
其他好文 时间:
2019-11-16 12:33:40
阅读次数:
88
"题目" 这,大概是我在CSP前最后的一篇模板题了吧。 时隔一年,昨天又一次成功地打对了LCA,可海星。 这里用的是倍增的写法。 Code: ...
分类:
其他好文 时间:
2019-11-13 13:19:10
阅读次数:
55
线段树(区间修改,区间和):#include #include #include using namespace std;int c[1000000],n,m;char s;void update(int p,int l,int r,int x,int add){ int m=(l+r) / 2; ... ...
分类:
编程语言 时间:
2019-11-12 10:47:37
阅读次数:
67