当前位置: 首页 > news >正文

个人网站建设的步骤过程给公司创建网站流程

个人网站建设的步骤过程,给公司创建网站流程,佛山房地产新闻,网页微信版登陆看不到聊天记录吗每棵子树内缺失的最小基因值【LC2003】 有一棵根节点为 0 的 家族树 ,总共包含 n 个节点,节点编号为 0 到 n - 1 。给你一个下标从 0 开始的整数数组 parents ,其中 parents[i] 是节点 i 的父节点。由于节点 0 是 根 ,所以 parent…

每棵子树内缺失的最小基因值【LC2003】

有一棵根节点为 0家族树 ,总共包含 n 个节点,节点编号为 0n - 1 。给你一个下标从 0 开始的整数数组 parents ,其中 parents[i] 是节点 i 的父节点。由于节点 0 ,所以 parents[0] == -1

总共有 105 个基因值,每个基因值都用 闭区间 [1, 105] 中的一个整数表示。给你一个下标从 0 开始的整数数组 nums ,其中 nums[i] 是节点 i 的基因值,且基因值 互不相同

请你返回一个数组 ans ,长度为 n ,其中 ans[i] 是以节点 i 为根的子树内 缺失最小 基因值。

节点 x 为根的 子树 包含节点 x 和它所有的 后代 节点。

  • 思路

    本题关键点在于

    • 如果树中不存在节点基因值为1的点,那么所有节点缺失的最小基因值为1
    • 如果树中存在节点基因值为1的点,那么其祖先节点缺失的最小基因值不为1,其他节点均为1

    那么,如果树中有基因值为1的节点的话,从该节点出发dfs求出其祖先节点缺失的最小基因值

    • dfs过程中使用哈希表记录目前已经遍历的基因值
    • 使用变量记录当前缺失的最小基因值
  • 实现

    class Solution {public int[] smallestMissingValueSubtree(int[] parents, int[] nums) {int n = parents.length;int[] ans = new int[n];Arrays.fill(ans, 1);int node = -1;for (int i = 0; i < n; i++) {if (nums[i] == 1) {node = i; // 出发点break;}}if (node < 0) { // 不存在基因值为 1 的点return ans;}// 建树List<Integer>[] g = new ArrayList[n];Arrays.setAll(g, e -> new ArrayList<>());for (int i = 1; i < n; ++i) {g[parents[i]].add(i);}Set<Integer> vis = new HashSet<>();int mex = 2; // 缺失的最小基因值while (node >= 0) {dfs(node, g, vis, nums);while (vis.contains(mex)) { // node 子树包含这个基因值mex++;}ans[node] = mex; // 缺失的最小基因值node = parents[node]; // 往上走}return ans;}// 遍历 x 子树private void dfs(int x, List<Integer>[] g, Set<Integer> vis, int[] nums) {vis.add(nums[x]); // 标记基因值for (int son : g[x]) {if (!vis.contains(nums[son])) {dfs(son, g, vis, nums);}}}
    }作者:灵茶山艾府
    链接:https://leetcode.cn/problems/smallest-missing-genetic-value-in-each-subtree/solutions/2505883/tu-jie-yi-zhang-tu-miao-dong-duo-chong-x-q095/
    来源:力扣(LeetCode)
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    
    • 复杂度
      • 时间复杂度: O ( n ) \mathcal{O}(n) O(n) n n n为二叉树的节点数目,每个节点最多只会访问1次
      • 空间复杂度: O ( n + m ) \mathcal{O}(n+m) O(n+m)
http://www.yayakq.cn/news/521993/

相关文章:

  • 北京哪里做网站浙江seo技术培训
  • 佛山网站建设企业推荐做网站推广怎么做
  • 国际新闻快报社平原县网站seo优化排名
  • 房产网站源码wordpress中山古镇做网站
  • 做网站除了域名还用什么网络广告推广怎么做
  • 写网站建设的软文第二波新冠感染高峰
  • 性价比高的seo网站优化页面设计快捷键
  • 网站的互动功能柳州网站
  • 浙江建筑信息网站重庆优化官网服务
  • 请列出页面上影响网站排名的因素wordpress帐号重置
  • 网站建设对接流程图平台网站建设
  • 建云购网站吗凡科建站网
  • 成都网站设计排名的公司价格企业管理软件选型要注意哪些因素
  • 浙江省住房和城乡建设局网站首页wordpress文章首页显示
  • 优化游戏的软件保山网站建设优化
  • 微网站建设服务怎么做后台网站一键更新
  • 三只松鼠商务网站建设目的怎样经营好一个网站
  • 网站页面太多怎么做网站地图六安城市网电话是多少
  • 医院网站制作设计黄江仿做网站
  • 共创福州网站建设python 网站开发 linux
  • 制作网站公司年收入多少广州官网建设
  • 镜像网站能否做google排名下载软件的网址
  • 简易的在线数据库网站模板北京网站建设方案报价
  • 杨凌企业网站建设030159网站建设与维护
  • 做个普通的网站多少钱平面设计师如何做网站
  • 网站赚钱吗盐城网站开发公司电话
  • 淘宝客网站推广怎么做网站建设步骤的论文
  • 网站怎么申请30岁学网站建设
  • 濮阳网站建设哪家好win7系统做网站服务器系统
  • 个人博客网站源码推广软文是什么意思