最近公共祖先
来源:互联网 发布:美好的每一天剧情知乎 编辑:程序博客网 时间:2024/06/01 13:33
题目描述
有一棵无穷大的满二叉树,其结点按根结点一层一层地从左往右依次编号,根结点编号为1。现在有两个结点a,b。请设计一个算法,求出a和b点的最近公共祖先的编号。
给定两个int a,b。为给定结点的编号。请返回a和b的最近公共祖先的编号。注意这里结点本身也可认为是其祖先。
测试样例:
2,3
返回:1
思路:满二叉树的子节点与父节点之间的关系为root = child / 2,利用这个关系,如果a != b,就让其中的较大数除以2, 如此循环知道a == b,即是原来两个数的最近公共祖先
代码如下:
import java.util.*;public class LCA { public int getLCA(int a, int b) { // write code here while(a/2!=b/2){ if(a>b){ a=a/2; }else{ b=b/2; } } return a/2; }}
0 0
- 最近公共祖先LCA
- 最近公共祖先(LCA)
- 最近公共祖先
- Lca 最近公共祖先
- 【最近公共祖先】Tree
- LCA----最近公共祖先
- 最近公共祖先问题
- LCA (最近公共祖先)
- POJ1330(最近公共祖先)
- 最近公共祖先
- 最近公共祖先模版
- 最近公共祖先问题
- 最近公共祖先
- 最近公共祖先
- 最近公共祖先问题
- POJ1330最近公共祖先
- LCA最近公共祖先
- 最近公共祖先问题
- 理解 Java 垃圾回收机制
- 食物链
- hdu 4114 状压dp floyd
- 第八周项目:指向学生类的指针
- java基础(一)
- 最近公共祖先
- 第七届 科技节 电子设计大赛 一等奖作品---智慧生态园
- 验证码
- 《机器学习实战》--Logistic回归
- 设置Tomcat的JAVA_OPTS参数
- 工作日志——k8s pv&pvc
- poj_3669_广度优先搜索
- [7688] Uboot编译环境搭建以及编译
- Android入门学习——RxJava+Retrofit+MVP学习