2021-12-04 14:24
复旦大学 算法工程师 百分猫:我第一次看哈希表的解法时,不太理解res += mp[temp - sum]。因此把详细解释列在评论里,希望可以帮到其他不懂的人。 这两句代码的意思是: 1. `if(mp.find(temp - sum) != mp.end())`:这一句判断当前累加和减去目标和`sum`是否在哈希表`mp`中出现过。如果出现过,说明存在一条从根节点到当前节点的路径,使得路径上的节点值之和等于`sum`。这是因为`temp`表示从根节点到当前节点的路径上所有节点值的和,而`temp - sum`表示从根节点到某个中间节点的路径上所有节点值的和。如果`temp - sum`在哈希表中出现过,说明从该中间节点到当前节点的路径上的节点值之和等于`sum`。 2. `res += mp[temp - sum];`:这一句将哈希表中记录的满足条件的路径数量累加到结果`res`中。因为`mp[temp - sum]`表示从根节点到某个中间节点的路径上所有节点值的和等于`temp - sum`的路径数量,所以这些路径数量就是满足条件的路径数量。
0 点赞 评论 收藏
分享
创作者周榜
更多
关注他的用户也关注了: