Skip to content

Commit 749f117

Browse files
authored
2025-03-31 v. 9.1.5: added "2265. Count Nodes Equal to Average of Subtree"
2 parents 35a7a7f + 36b3ab5 commit 749f117

4 files changed

+62
-1
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -749,6 +749,7 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/).
749749
| 2221. Find Triangular Sum of an Array | [Link](https://leetcode.com/problems/find-triangular-sum-of-an-array/) | [Link](./lib/medium/2221_find_triangular_sum_of_an_array.rb) | [Link](./test/medium/test_2221_find_triangular_sum_of_an_array.rb) |
750750
| 2225. Find Players With Zero or One Losses | [Link](https://leetcode.com/problems/find-players-with-zero-or-one-losses/) | [Link](./lib/medium/2225_find_players_with_zero_or_one_losses.rb) | [Link](./test/medium/test_2225_find_players_with_zero_or_one_losses.rb) |
751751
| 2233. Maximum Product After K Increments | [Link](https://leetcode.com/problems/maximum-product-after-k-increments/) | [Link](./lib/medium/2233_maximum_product_after_k_increments.rb) | [Link](./test/medium/test_2233_maximum_product_after_k_increments.rb) |
752+
| 2265. Count Nodes Equal to Average of Subtree | [Link](https://leetcode.com/problems/count-nodes-equal-to-average-of-subtree/) | [Link](./lib/medium/2265_count_nodes_equal_to_average_of_subtree.rb) | [Link](./test/medium/test_2265_count_nodes_equal_to_average_of_subtree.rb) |
752753
| 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) |
753754
| 2429. Minimize XOR | [Link](https://leetcode.com/problems/minimize-xor/) | [Link](./lib/medium/2429_minimize_xor.rb) | [Link](./test/medium/test_2429_minimize_xor.rb) |
754755
| 2657. Find the Prefix Common Array of Two Arrays | [Link](https://leetcode.com/problems/find-the-prefix-common-array-of-two-arrays/) | [Link](./lib/medium/2657_find_the_prefix_common_array_of_two_arrays.rb) | [Link](./test/medium/test_2657_find_the_prefix_common_array_of_two_arrays.rb) |

leetcode-ruby.gemspec

+1-1
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 = '9.1.4'
8+
s.version = '9.1.5'
99
s.license = 'MIT'
1010
s.files = ::Dir['lib/**/*.rb'] + %w[README.md]
1111
s.executable = 'leetcode-ruby'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# frozen_string_literal: true
2+
3+
# https://leetcode.com/problems/count-nodes-equal-to-average-of-subtree/
4+
# @param {TreeNode} root
5+
# @return {Integer}
6+
def average_of_subtree(root)
7+
@result = 0
8+
9+
dfs_for_average_of_subtree(root)
10+
11+
@result
12+
end
13+
14+
private
15+
16+
# @param {TreeNode} node
17+
# @return {Integer[]}
18+
def dfs_for_average_of_subtree(node)
19+
return ::Array.new(2, 0) unless node
20+
21+
left = dfs_for_average_of_subtree(node.left)
22+
right = dfs_for_average_of_subtree(node.right)
23+
24+
curr_sum = left[0] + right[0] + node.val
25+
curr_count = left[1] + right[1] + 1
26+
27+
@result += 1 if curr_sum / curr_count == node.val
28+
29+
[curr_sum, curr_count]
30+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# frozen_string_literal: true
2+
3+
require_relative '../test_helper'
4+
require_relative '../../lib/common/binary_tree'
5+
require_relative '../../lib/medium/2265_count_nodes_equal_to_average_of_subtree'
6+
require 'minitest/autorun'
7+
8+
class CountNodesEqualToAverageOfSubtreeTest < ::Minitest::Test
9+
def test_default_one
10+
assert_equal(
11+
5,
12+
average_of_subtree(
13+
::TreeNode.build_tree(
14+
[4, 8, 5, 0, 1, nil, 6]
15+
)
16+
)
17+
)
18+
end
19+
20+
def test_default_two
21+
assert_equal(
22+
1,
23+
average_of_subtree(
24+
::TreeNode.build_tree(
25+
[1]
26+
)
27+
)
28+
)
29+
end
30+
end

0 commit comments

Comments
 (0)