欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > Leetcode437. 路径总和 III(HOT100)

Leetcode437. 路径总和 III(HOT100)

2025/2/25 20:19:52 来源:https://blog.csdn.net/kitesxian/article/details/144063852  浏览:    关键词:Leetcode437. 路径总和 III(HOT100)

链接

我的代码:

class Solution {
public:int res = 0;int pathSum(TreeNode* root, int targetSum) {if(!root)return 0;dfs(root,targetSum);pathSum(root->left,targetSum);pathSum(root->right,targetSum);return res;}void dfs(TreeNode*root,long long targetSum){if(!root)return;targetSum-=root->val;if(targetSum==0){res++;}dfs(root->left,targetSum);dfs(root->right,targetSum);}
};

更好的代码:
 

class Solution {
public:unordered_map<long long,int> cnt;int res = 0;int pathSum(TreeNode* root, int targetSum) {cnt[0] = 1;dfs(root,targetSum,0);return res;}void dfs(TreeNode*root,int targetSum,long long cur){if(!root)return;cur+=root->val;res+=cnt[cur-targetSum];cnt[cur]++;dfs(root->left,targetSum,cur),dfs(root->right,targetSum,cur);cnt[cur]--;}
};

第二次这个代码刚开始写的时候:没有把cnt中key的类型从int改为long long,然后一直疑惑:dfs形参cur的类型就是int啊...........

原来cnt的key的类型也要改,因为cnt存储的是某和出现了多少次,这个和可能会溢出。 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词