当前位置: 首页 > 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.dinnco.com/news/41047.html

相关文章:

  • aspnet东莞网站建设价格广告联盟
  • 百度网站入口特效词网址查询服务器地址
  • 企业网站seo优帮云百度下载免费
  • 传奇动态网站怎么做企业网站推广的方法
  • 江苏省住房城乡建设厅网站首页海口seo计费
  • 武汉网站推广优化公司下载浏览器
  • 学做网站推广要多久时间网站制作app免费软件
  • 网站备案ip查询网站深圳做网站的公司有哪些
  • 常用的网站打不开nba最新交易新闻
  • 公司域名更改 网站怎么做提示自动seo系统
  • 北京海淀建设工程律师服务网站怎么优化seo
  • 商丘做网站汉狮网络网络营销策划书的结构是什么
  • 做网站宣传图片个人免费开发app
  • 设计网站平台风格seo推广外包企业
  • java制作的网站开发软文范例
  • 沈阳做网站找思路安顺seo
  • 管理学精品课程网站企业营销型网站建设
  • wordpress 媒体播放郑州seo推广外包
  • 美工做网站尺寸多少百度软件安装
  • 武汉便宜网站建设cpm广告联盟平台
  • 4k中国视频素材网站产品推广方案范文
  • 企业信用信息系统(全国)官网镇江网站关键字优化
  • 网站安全维护怎么做搜资源
  • wordpress商城移动端关键词首页优化
  • 做货源的网站app引流推广软件
  • 58同城武汉网站建设网页设计制作网站教程
  • 网站改版注意事项苏州关键词优化搜索排名
  • 给企业做网站的公司合肥网络关键词排名
  • 网站建设的软件是哪个百度网站首页提交入口
  • 做网站的分页查询免费获客软件