dolca 两个 while 中间加一句 if(x==y) return x;
by 小粉兔 @ 2019-02-09 13:48:04
因为 x 和 y 跳到相同深度时,相等了要特判。不相等才进入下一个循环。
还有你这个求一次lca是log方的啊
by 小粉兔 @ 2019-02-09 13:51:48
@[小粉兔](/space/show?uid=10703)
oo谢谢!
不过为啥是log方呢,是因为那个从20->0的循环?
by PotatoServer @ 2019-02-10 09:52:36
@[PotatoServer](/space/show?uid=97139) 是啊,其实不需要外面的 while 循环的
by 小粉兔 @ 2019-02-10 15:02:37
@[小粉兔](/space/show?uid=10703) ok我懂了!
by PotatoServer @ 2019-02-13 08:27:55
@[小粉兔](/space/show?uid=10703) while好像是加不加都不影响吧?然后我看题解里的写法好像差不多啊...
应该说是本质上没区别,for循环一次20 -> 0 足以跳到位了,所以while压根没起作用,应该实际上还是log(n)啊?
by PotatoServer @ 2019-02-13 08:33:51
第一个while套for的while去掉,for正序
by 小粉兔 @ 2019-02-13 09:00:35