今天将1483-树节点的第k个祖先留的那个倍增代码写了一下。
有以下几点需要借鉴的:
- 向上取整(log2(x))的计算方法
ceil(log2(x)) = 32 - Integer.numberOfLeadingZeros(x - 1) - 判断第i位是否为1的方式,我原先是判断k%2是否为1,将k减半,循环。其实可以使用位运算
((k >> i) & 1) == 1i从0自增,将k右移i位与1相与,得到i位上的值
今天将1483-树节点的第k个祖先留的那个倍增代码写了一下。
有以下几点需要借鉴的:
ceil(log2(x)) = 32 - Integer.numberOfLeadingZeros(x - 1)((k >> i) & 1) == 1 i从0自增,将k右移i位与1相与,得到i位上的值