Skip to content

Commit ac44b52

Browse files
authored
Merge pull request #792 from fartem/515_Find_Largest_Value_in_Each_Tree_Row
2024-12-04 v. 7.2.1: added "515. Find Largest Value in Each Tree Row"
2 parents cb6e6c3 + cc529da commit ac44b52

File tree

4 files changed

+71
-1
lines changed

4 files changed

+71
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -586,3 +586,4 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/).
586586
| 503. Next Greater Element II | [Link](https://leetcode.com/problems/next-greater-element-ii/) | [Link](./lib/medium/503_next_greater_element_ii.rb) | [Link](./test/medium/test_503_next_greater_element_ii.rb) |
587587
| 508. Most Frequent Subtree Sum | [Link](https://leetcode.com/problems/most-frequent-subtree-sum/) | [Link](./lib/medium/508_most_frequent_subtree_sum.rb) | [Link](./test/medium/test_508_most_frequent_subtree_sum.rb) |
588588
| 513. Find Bottom Left Tree Value | [Link](https://leetcode.com/problems/find-bottom-left-tree-value/) | [Link](./lib/medium/513_find_bottom_left_tree_value.rb) | [Link](./test/medium/test_513_find_bottom_left_tree_value.rb) |
589+
| 515. Find Largest Value in Each Tree Row | [Link](https://leetcode.com/problems/find-largest-value-in-each-tree-row/) | [Link](./lib/medium/515_find_largest_value_in_each_tree_row.rb) | [Link](./test/medium/test_515_find_largest_value_in_each_tree_row.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 = '7.2.0'
8+
s.version = '7.2.1'
99
s.license = 'MIT'
1010
s.files = ::Dir['lib/**/*.rb'] + %w[README.md]
1111
s.executable = 'leetcode-ruby'
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# frozen_string_literal: true
2+
3+
# https://leetcode.com/problems/find-largest-value-in-each-tree-row/
4+
# @param {TreeNode} root
5+
# @return {Integer[]}
6+
def largest_values(root)
7+
return [] unless root
8+
9+
result = []
10+
nodes = [root]
11+
until nodes.empty?
12+
size = nodes.size
13+
max = -::Float::INFINITY
14+
(0...size).each do |_|
15+
node = nodes.delete_at(0)
16+
17+
max = node.val if node.val > max
18+
19+
nodes << node.left if node.left
20+
nodes << node.right if node.right
21+
end
22+
23+
result << max
24+
end
25+
26+
result
27+
end
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# frozen_string_literal: true
2+
3+
require_relative '../test_helper'
4+
require_relative '../../lib/common/binary_tree'
5+
require_relative '../../lib/medium/515_find_largest_value_in_each_tree_row'
6+
require 'minitest/autorun'
7+
8+
class FindLargestValueInEachTreeRowTest < ::Minitest::Test
9+
def test_default_one
10+
assert_equal(
11+
[1, 3, 9],
12+
largest_values(
13+
::TreeNode.new(
14+
1,
15+
::TreeNode.new(
16+
3,
17+
::TreeNode.new(5),
18+
::TreeNode.new(3)
19+
),
20+
::TreeNode.new(
21+
2,
22+
nil,
23+
::TreeNode.new(9)
24+
)
25+
)
26+
)
27+
)
28+
end
29+
30+
def test_default_two
31+
assert_equal(
32+
[1, 3],
33+
largest_values(
34+
::TreeNode.new(
35+
1,
36+
::TreeNode.new(2),
37+
::TreeNode.new(3)
38+
)
39+
)
40+
)
41+
end
42+
end

0 commit comments

Comments
 (0)