mirror of
https://github.com/ShusenTang/LeetCode.git
synced 2024-09-02 14:20:01 +00:00
Update 437. Path Sum III.md
This commit is contained in:
parent
2d2bfce98f
commit
ba2704ec6c
@ -23,8 +23,8 @@
|
|||||||
不难发现思路二中的每次for循环包含了大量的重复运算,我们可以考虑用空间换时间的思想去掉这些不必要的重复计算。
|
不难发现思路二中的每次for循环包含了大量的重复运算,我们可以考虑用空间换时间的思想去掉这些不必要的重复计算。
|
||||||
大致思想还是同思路二,不过不用out数组记录root到node的所有节点,而是用一个hash表mp记录root到(当前)所有节点的每个路径和的个数,这样的话mp[curSum - sum]
|
大致思想还是同思路二,不过不用out数组记录root到node的所有节点,而是用一个hash表mp记录root到(当前)所有节点的每个路径和的个数,这样的话mp[curSum - sum]
|
||||||
就是满足条件的且以node结束的路径条数。
|
就是满足条件的且以node结束的路径条数。
|
||||||
例如,若root到node的值分别是:1、2、3、-3,则4个从root开始的路径和分别为1、3、6、3,那么此时就有`mp[1] = 1`、`mp[3]=2`、`mp[6]=1`。
|
例如,若root到node的值分别是:1、2、3、-3,则4个从root开始的路径和分别为1、3、6、3,那么此时就有`mp[0] = 1`、`mp[1] = 1`、`mp[3]=2`、`mp[6]=1`。
|
||||||
若sum=2,则此时得到的满足条件的且以node结束的路径条数就为`mp[curSum - sum] = mp[3 - 2] = 1`。
|
若sum=2,则此时得到的满足条件的且以node结束的路径条数就为`mp[curSum - sum] = mp[3 - 2] = 1`, 这条路径就是“2、3、-3”。
|
||||||
此时击败了99%的人,时间复杂度为O(n)
|
此时击败了99%的人,时间复杂度为O(n)
|
||||||
|
|
||||||
# C++
|
# C++
|
||||||
|
Loading…
Reference in New Issue
Block a user