创意网站界面,wordpress 输出子分类,网站前台设计软件,哪一项不是软件开发模型华为分红 770 亿 4 月 2 日#xff0c;北京金融资产交易所官网发布了《华为投资控股有限公司关于分配股利的公告》。 公告指出#xff1a;经公司内部有权机构决议#xff0c;拟向股东分配股利约 770.945 亿元。 众所周知#xff0c;华为并不是一家上市公司#xff0c;这里… 华为分红 770 亿 4 月 2 日北京金融资产交易所官网发布了《华为投资控股有限公司关于分配股利的公告》。 公告指出经公司内部有权机构决议拟向股东分配股利约 770.945 亿元。 众所周知华为并不是一家上市公司这里的分红是指通过工会实行的「员工持股计划」。 截止至 2023 年底华为员工持股计划参与人数约为 15W 人因此本次分红人均 W。 真不错又是心如止水的一天 华为分红坚挺的背后是 2023 年实现营业收入 7042 亿元净利润 870 亿元同比增长 144.5% 。 ... 回归主线。 来一道和「华为-入门级-算法考试」相关的题目。 题目描述 平台LeetCode 题号235 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为“对于有根树 T 的两个结点 p、q最近公共祖先表示为一个结点 x满足 x 是 p、q 的祖先且 x 的深度尽可能大一个节点也可以是它自己的祖先。” 例如给定如下二叉搜索树: root [6,2,8,0,4,7,9,null,null,3,5] 示例 1: 输入: root [6,2,8,0,4,7,9,null,null,3,5], p 2, q 8输出: 6 解释: 节点 2 和节点 8 的最近公共祖先是 6。 示例 2: 输入: root [6,2,8,0,4,7,9,null,null,3,5], p 2, q 4输出: 2解释: 节点 2 和节点 4 的最近公共祖先是 2, 因为根据定义最近公共祖先节点可以为节点本身。 说明: 所有节点的值都是唯一的。 p、 q 为不同节点且均存在于给定的二叉搜索树中。 DFS 也是常见的 LCA 问题但相比 236. 二叉树的最近公共祖先本题搜索对象为二叉搜索树利用此特性我们可以将搜索复杂度从 优化至 。 利用原函数作为递归函数复用 root 作为搜索过程中的当前节点根据 root 和两节点关系进行分情况讨论 若 root 为 p 和 q 中的任一节点由于搜索过程是从上往下因此 root 必然是距离两者垂直距离最远的最近公共祖先返回 root 否则根据 root 和 p、 q 的节点值大小进一步讨论将 root 节点值记为 a两节点值中的较小值记为 b两节点中的较大值记为 c 若有 说明 p 和 q 中值较小的节点在当前节点 root 的左子树内 p 和 q 中值较大的节点在当前节点 root 的右子树内。由于搜索过程是从上往下因此 root 作为首个满足该条件的节点必然是距离两者垂直距离最远的最近公共祖先返回 root 若有 说明两节点均在当前节点 root 的右子树内递归处理 root.right 若有 说明两节点均在当前节点 root 的左子树内递归处理 root.left。 Java 代码 class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { if (root p || root q) return root; int a root.val, b Math.min(p.val, q.val), c Math.max(p.val, q.val); if (a b a c) return root; else if (a b) return lowestCommonAncestor(root.right, p, q); else return lowestCommonAncestor(root.left, p, q); }} C 代码 class Solution {public: TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { if (root p || root q) return root; int a root-val, b min(p-val, q-val), c max(p-val, q-val); if (a b a c) return root; else if (a b) return lowestCommonAncestor(root-right, p, q); else return lowestCommonAncestor(root-left, p, q); }}; Python 代码 class Solution: def lowestCommonAncestor(self, root: TreeNode, p: TreeNode, q: TreeNode) - TreeNode: if root p or root q: return root a, b root.val, min(p.val, q.val) c max(p.val, q.val) if a b and a c: return root elif a b: return self.lowestCommonAncestor(root.right, p, q) else: return self.lowestCommonAncestor(root.left, p, q) TypeScript 代码 function lowestCommonAncestor(root: TreeNode | null, p: TreeNode | null, q: TreeNode | null): TreeNode | null { if (root p || root q) return root; const a root.val, b Math.min(p.val, q.val), c Math.max(p.val, q.val); if (a b a c) return root; else if (a b) return lowestCommonAncestor(root.right, p, q); else return lowestCommonAncestor(root.left, p, q);}; 时间复杂度 其中 为二叉搜索树的深度 空间复杂度 最后 给大伙通知一下 全网最低价 LeetCode 会员目前仍可用 年度会员有效期加赠两个月; 季度会员有效期加赠两周 年度会员获 66.66 现金红包; 季度会员获 22.22 现金红包 年度会员参与当月丰厚专属实物抽奖中奖率 30%) 专属链接leetcode.cn/premium/?promoChannelacoier 我是宫水三叶每天都会分享算法知识并和大家聊聊近期的所见所闻。 欢迎关注明天见。 更多更全更热门的「笔试/面试」相关资料可访问排版精美的 合集新基地