最近公共祖先
对于这道题目,我们要知道,一个根节点从1开始的二叉树,父节点 = 子节点 / 2。
所以如果a != b,先把较大的除以二再进行比较,直到两数相等。
示例代码:
class LCA {
public:
int getLCA(int a, int b) {
while (a != b){
if (a > b)
a /= 2;
else
b /= 2;
}
return a;
}
};
求最大连续数
这道题目类似与之前做的最大连续字串,思路也是一样的,定义count, maxcount,位置等于1的时候count++,等于0先停止计数,count与maxcount
比较,count较大就更新maxcount,直到结束。
遍历可以采用a & 1,再右移·或者是a % 2 ,a /= 2的方法。
最长连续字串:https://blog.csdn.net/m0_52319639/article/details/125549969?spm=1001.2014.3001.5501