DonglaiFu
DonglaiFu
> 非满二叉树的子树相当于需要遍历该子树中的每一个节点吧 @lhcezx 你说的这句话不对。注意代码,非满二叉树也只需要从根节点走到叶子节点,即遍历「高度」而不是「所有节点」,所以所需时间就是 logN,因此结果就是 O(logN*logN)。
@Luadoo 确实,刷题多无聊,建议去抖音刷小姐姐,几十秒刷一个,不仅有趣,而且每天刷上几千个也不怕吃不消。
@LovesAsuna 嗯,`k == 0` 代表没有中转,当起点等于终点的时候确实是一种可行情况,但是: 1、这种边界问题的关键是看题目给的数据边界,题目说了 `src != dst`。所以你说的没问题,但单就这道题来说,`k == 0` 直接返回 -1 也是没问题的。 2、我们在一开始给输入的 `k` 做了 +1 的处理,题目给定的 `k` 的范围是大于等于 0,那么加一后 `k` 也不可能等于 0。
@LovesAsuna 我上面说的是 `dp` 函数递归开始时的情况,我又仔细理解了一下你的问题,你问的应该是递归的过程中,`s` 被视作起点不断变化,如果当 `k == 0` 时 `s` 恰好就是 `src`,这种情况不应该返回 -1。 是的,这就是我们找到答案的时候,实际上这种情况算法也没有返回 -1,而是返回了 0,因为判断 `s == src` 的 base case 在前,`k == 0` 的判断在后。
@zzbb9944 千里之行,始于足下,加油!
测试了一下,直接复制我的代码都可以通过的,可能是你们写错了
@kuangkuangkuangha 是你代码写得有问题吧,递归函数的参数怎么能传值呢?string 改成 string& 试试。
@Hailei-J @tinainusa @InnovationFlash 你们确定不是自己写错了?我提交了一下都没有问题。
@Jackwong0716 这个所谓开闭的概念,不是看循环中是 `
@ngokchaoho 这是一种编程习惯罢了,可以改成 `==`