Skip to content

Commit 6b60be7

Browse files
authored
2025-01-17 v. 8.1.5: added "979. Distribute Coins in Binary Tree"
2 parents 547daa6 + 00b8c25 commit 6b60be7

File tree

4 files changed

+62
-1
lines changed

4 files changed

+62
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -649,6 +649,7 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/).
649649
| 958. Check Completeness of a Binary Tree | [Link](https://leetcode.com/problems/check-completeness-of-a-binary-tree/) | [Link](./lib/medium/958_check_completeness_of_a_binary_tree.rb) | [Link](./test/medium/test_958_check_completeness_of_a_binary_tree.rb) |
650650
| 967. Numbers With Same Consecutive Differences | [Link](https://leetcode.com/problems/numbers-with-same-consecutive-differences/) | [Link](./lib/medium/967_numbers_with_same_consecutive_differences.rb) | [Link](./test/medium/test_967_numbers_with_same_consecutive_differences.rb) |
651651
| 973. K Closest Points to Origin | [Link](https://leetcode.com/problems/k-closest-points-to-origin/) | [Link](./lib/medium/973_k_closest_points_to_origin.rb) | [Link](./test/medium/test_973_k_closest_points_to_origin.rb) |
652+
| 979. Distribute Coins in Binary Tree | [Link](https://leetcode.com/problems/distribute-coins-in-binary-tree/) | [Link](./lib/medium/979_distribute_coins_in_binary_tree.rb) | [Link](./test/medium/test_979_distribute_coins_in_binary_tree.rb) |
652653
| 1400. Construct K Palindrome Strings | [Link](https://leetcode.com/problems/construct-k-palindrome-strings/) | [Link](./lib/medium/1400_construct_k_palindrome_strings.rb) | [Link](./test/medium/test_1400_construct_k_palindrome_strings.rb) |
653654
| 2116. Check if a Parentheses String Can Be Valid | [Link](https://leetcode.com/problems/check-if-a-parentheses-string-can-be-valid/) | [Link](./lib/medium/2116_check_if_a_parentheses_string_can_be_valid.rb) | [Link](./test/medium/test_2116_check_if_a_parentheses_string_can_be_valid.rb) |
654655
| 2425. Bitwise XOR of All Pairings | [Link](https://leetcode.com/problems/bitwise-xor-of-all-pairings/) | [Link](./lib/medium/2425_bitwise_xor_of_all_pairings.rb) | [Link](./test/medium/test_2425_bitwise_xor_of_all_pairings.rb) |

leetcode-ruby.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ require 'English'
55
::Gem::Specification.new do |s|
66
s.required_ruby_version = '>= 3.0'
77
s.name = 'leetcode-ruby'
8-
s.version = '8.1.4'
8+
s.version = '8.1.5'
99
s.license = 'MIT'
1010
s.files = ::Dir['lib/**/*.rb'] + %w[README.md]
1111
s.executable = 'leetcode-ruby'
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# frozen_string_literal: true
2+
3+
# https://leetcode.com/problems/distribute-coins-in-binary-tree/
4+
# @param {TreeNode} root
5+
# @return {Integer}
6+
def distribute_coins(root)
7+
@result = 0
8+
dfs_for_distribute_coins(root)
9+
10+
@result
11+
end
12+
13+
private
14+
15+
# @param {TreeNode} node
16+
# @return {Integer}
17+
def dfs_for_distribute_coins(node)
18+
return 0 unless node
19+
20+
left = dfs_for_distribute_coins(node.left)
21+
right = dfs_for_distribute_coins(node.right)
22+
23+
@result += left.abs + right.abs
24+
25+
node.val + left + right - 1
26+
end
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# frozen_string_literal: true
2+
3+
require_relative '../test_helper'
4+
require_relative '../../lib/common/binary_tree'
5+
require_relative '../../lib/medium/979_distribute_coins_in_binary_tree'
6+
require 'minitest/autorun'
7+
8+
class DistributeCoinsToBinaryTreeTest < ::Minitest::Test
9+
def test_default_one
10+
assert_equal(
11+
2,
12+
distribute_coins(
13+
::TreeNode.new(
14+
3,
15+
::TreeNode.new(0),
16+
::TreeNode.new(0)
17+
)
18+
)
19+
)
20+
end
21+
22+
def test_default_two
23+
assert_equal(
24+
3,
25+
distribute_coins(
26+
::TreeNode.new(
27+
0,
28+
::TreeNode.new(3),
29+
::TreeNode.new(0)
30+
)
31+
)
32+
)
33+
end
34+
end

0 commit comments

Comments
 (0)