From 185ef9fcb0e59f13e9ee0ccb261693cdaddebab0 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 23 Feb 2021 21:07:19 +0800 Subject: import(solutions): Move leetcode solutions to subdir. --- .../leetcode/cpp/paths-with-sums-lcci.cpp | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 works/solutions/leetcode/cpp/paths-with-sums-lcci.cpp (limited to 'works/solutions/leetcode/cpp/paths-with-sums-lcci.cpp') diff --git a/works/solutions/leetcode/cpp/paths-with-sums-lcci.cpp b/works/solutions/leetcode/cpp/paths-with-sums-lcci.cpp new file mode 100644 index 0000000..697182d --- /dev/null +++ b/works/solutions/leetcode/cpp/paths-with-sums-lcci.cpp @@ -0,0 +1,46 @@ +#include + +struct TreeNode +{ + int val; + TreeNode *left; + TreeNode *right; + TreeNode(int x) : val(x), left(NULL), right(NULL) {} +}; + +#include + +class Solution +{ +public: + std::vector current; + + int dfs(TreeNode *root, int sum) + { + if (root == nullptr) + return 0; + + current.push_back(root->val); + + int s = 0; + int count = 0; + + for (auto iter = current.crbegin(); iter != current.crend(); ++iter) + { + s += *iter; + if (s == sum) + count++; + } + + count += dfs(root->left, sum) + dfs(root->right, sum); + + current.pop_back(); + + return count; + } + + int pathSum(TreeNode *root, int sum) + { + return dfs(root, sum); + } +}; -- cgit v1.2.3