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

广州网站营销seo展览 网站源码

广州网站营销seo,展览 网站源码,网络营销推广的优势,为什么网站开发成本高目录 1483. 树节点的第 K 个祖先 题目描述: 实现代码与解析: 倍增 原理思路: 1483. 树节点的第 K 个祖先 题目描述: 给你一棵树,树上有 n 个节点,按从 0 到 n-1 编号。树以父节点数组的形式给出&#…

目录

1483. 树节点的第 K 个祖先

题目描述:

实现代码与解析:

倍增

原理思路:


1483. 树节点的第 K 个祖先

题目描述:

        给你一棵树,树上有 n 个节点,按从 0 到 n-1 编号。树以父节点数组的形式给出,其中 parent[i] 是节点 i 的父节点。树的根节点是编号为 0 的节点。

树节点的第 k 个祖先节点是从该节点到根节点路径上的第 k 个节点。

实现 TreeAncestor 类:

  • TreeAncestor(int n, int[] parent) 对树和父数组中的节点数初始化对象。
  • getKthAncestor(int node, int k) 返回节点 node 的第 k 个祖先节点。如果不存在这样的祖先节点,返回 -1 。

示例 1:

输入:
["TreeAncestor","getKthAncestor","getKthAncestor","getKthAncestor"]
[[7,[-1,0,0,1,1,2,2]],[3,1],[5,2],[6,3]]输出:
[null,1,0,-1]解释:
TreeAncestor treeAncestor = new TreeAncestor(7, [-1, 0, 0, 1, 1, 2, 2]);treeAncestor.getKthAncestor(3, 1);  // 返回 1 ,它是 3 的父节点
treeAncestor.getKthAncestor(5, 2);  // 返回 0 ,它是 5 的祖父节点
treeAncestor.getKthAncestor(6, 3);  // 返回 -1 因为不存在满足要求的祖先节点

提示:

  • 1 <= k <= n <= 5 * 104
  • parent[0] == -1 表示编号为 0 的节点是根节点。
  • 对于所有的 0 < i < n ,0 <= parent[i] < n 总成立
  • 0 <= node < n
  • 至多查询 5 * 104 次

实现代码与解析:

倍增

class TreeAncestor {int M = 17;int[][] an;public TreeAncestor(int n, int[] parent) {an = new int[n][M];// 初始化for (int i = 0; i < n; i++) {Arrays.fill(an[i], -1);}for (int i = 0; i < n; i++) {an[i][0] = parent[i];}for (int j = 1; j < M; j++) {for (int i = 0; i < n; i++) {if (an[i][j - 1] != -1) {an[i][j] = an[an[i][j - 1]][j - 1];}}}}public int getKthAncestor(int node, int k) {for (int j = 0; j < M; j++) {if (((k >> j) & 1) != 0) {node = an[node][j];if (node == -1) return -1;}}return node;}
}

原理思路:

        倍增 + dp。

dp数组含义:f[i][j] 表示第 i 个节点的 2^j 的祖先节点。

转移方程:2 ^ j =2^(j - 1) + 2^(j - 1) 也就是f[i][j] = f[ f[ i ][ j - 1 ] ] [ j - 1 ]。

将 k 二进制例如:13 = 1101 = 8 + 4 + 1 = 2^3 + 2^2 + 2^0;

        假设我们要找x的第13个祖节点,可以先向上找到最近的第8个节点(t),在找的 t 的最近的第4个祖宗节点...........直到找到目标节点。

用公式就是:x = f[x][3], x = f[x][2], x = f[x][1];

顺序无所谓,可以8,4,1也可以1, 4, 8。  

http://www.yayakq.cn/news/572320/

相关文章:

  • 海南省海口市建设厅网站网站工作室网站
  • 西安手机商城网站建设专业定制网站制作公司
  • 昆明学习网站建设公司名字大全集
  • 做网站 报价 需要了解塘厦三正半山酒店
  • 备案期间怎么做网站北京网站推广排名
  • 网站邮箱配置汕头网站建设网站推广
  • 网站首页添加标签wordpress 文章列表样式
  • 百度怎样收录网站wordpress框架播放器
  • 浙江江能建设有限公司网站深圳网站建设的
  • 自己做网站代理产品重庆注册公司流程和费用标准
  • 为什么要建设图书馆网站人才网招聘找工作
  • 免费素材网站无版权电子商务网站开发的步骤
  • 网站策划书案例展示企业管理研究生学校排名
  • 后浪 网站建设类wordpress 自定义侧边栏
  • 外贸seo外贸推广外贸网站建设外贸网站建设衡水网站推广的网络公司
  • 做网站运用的软件html代码特效银河系
  • 做家电维修网站国家公示网营业执照
  • 优设计网站网站建设最新
  • 个人做网站的时代已经过去数学教学网站开发
  • 企业网站使用不规范地图如何处罚wordpress 插件怎么写
  • 扬州建设网站视频直播软件
  • 电子商务网站的全面建设外贸推广用中文网站
  • 建设网站网上银行登录wordpress网站统计代码
  • 做spa会所网站wordpress去掉wordpress.org
  • 百度上可以做中英文网站吗网站建设seo策略
  • 做平台好还是做网站好网站群建设的意义
  • 廊坊网站建设维护dz wordpress
  • 如何建立自己的网站平台营销型网站的建设要求都有什么
  • 大学生网站建设申报书东莞营销网站建设费用
  • 网站排名消失网站后台有些不显示