diff --git a/leetcode-ruby.gemspec b/leetcode-ruby.gemspec index 1a969282..ecf47164 100644 --- a/leetcode-ruby.gemspec +++ b/leetcode-ruby.gemspec @@ -5,7 +5,7 @@ require 'English' ::Gem::Specification.new do |s| s.required_ruby_version = '>= 3.0' s.name = 'leetcode-ruby' - s.version = '8.2.5.2' + s.version = '8.2.5.3' s.license = 'MIT' s.files = ::Dir['lib/**/*.rb'] + %w[README.md] s.executable = 'leetcode-ruby' diff --git a/test/medium/test_1008_construct_binary_search_tree_from_preorder_traversal.rb b/test/medium/test_1008_construct_binary_search_tree_from_preorder_traversal.rb index 64d27e24..f29a5471 100644 --- a/test/medium/test_1008_construct_binary_search_tree_from_preorder_traversal.rb +++ b/test/medium/test_1008_construct_binary_search_tree_from_preorder_traversal.rb @@ -9,18 +9,8 @@ class ConstructBinarySearchTreeFromPreorderTraversalTest < ::Minitest::Test def test_default_one assert( ::TreeNode.are_equals( - ::TreeNode.new( - 8, - ::TreeNode.new( - 5, - ::TreeNode.new(1), - ::TreeNode.new(7) - ), - ::TreeNode.new( - 10, - nil, - ::TreeNode.new(12) - ) + ::TreeNode.build_tree( + [8, 5, 10, 1, 7, nil, 12] ), bst_from_preorder( [8, 5, 1, 7, 10, 12] @@ -32,10 +22,8 @@ def test_default_one def test_default_two assert( ::TreeNode.are_equals( - ::TreeNode.new( - 1, - nil, - ::TreeNode.new(3) + ::TreeNode.build_tree( + [1, nil, 3] ), bst_from_preorder( [1, 3] diff --git a/test/medium/test_701_insert_into_a_binary_search_tree.rb b/test/medium/test_701_insert_into_a_binary_search_tree.rb index 9d207b94..0fca0c1d 100644 --- a/test/medium/test_701_insert_into_a_binary_search_tree.rb +++ b/test/medium/test_701_insert_into_a_binary_search_tree.rb @@ -9,28 +9,12 @@ class InsertIntoABinarySearchTreeTest < ::Minitest::Test def test_default_one assert( ::TreeNode.are_equals( - ::TreeNode.new( - 4, - ::TreeNode.new( - 2, - ::TreeNode.new(1), - ::TreeNode.new(3) - ), - ::TreeNode.new( - 7, - ::TreeNode.new(5), - nil - ) + ::TreeNode.build_tree( + [4, 2, 7, 1, 3, 5] ), insert_into_bst( - ::TreeNode.new( - 4, - ::TreeNode.new( - 2, - ::TreeNode.new(1), - ::TreeNode.new(3) - ), - ::TreeNode.new(7) + ::TreeNode.build_tree( + [4, 2, 7, 1, 3] ), 5 ) @@ -41,40 +25,32 @@ def test_default_one def test_default_two assert( ::TreeNode.are_equals( - ::TreeNode.new( - 40, - ::TreeNode.new( - 20, - ::TreeNode.new(10), - ::TreeNode.new( - 30, - ::TreeNode.new(25), - nil - ) - ), - ::TreeNode.new( - 60, - ::TreeNode.new(50), - ::TreeNode.new(70) - ) + ::TreeNode.build_tree( + [40, 20, 60, 10, 30, 50, 70, nil, nil, 25] ), insert_into_bst( - ::TreeNode.new( - 40, - ::TreeNode.new( - 20, - ::TreeNode.new(10), - ::TreeNode.new(30) - ), - ::TreeNode.new( - 60, - ::TreeNode.new(50), - ::TreeNode.new(70) - ) + ::TreeNode.build_tree( + [40, 20, 60, 10, 30, 50, 70] ), 25 ) ) ) end + + def test_default_three + assert( + ::TreeNode.are_equals( + ::TreeNode.build_tree( + [4, 2, 7, 1, 3, 5] + ), + insert_into_bst( + ::TreeNode.build_tree( + [4, 2, 7, 1, 3, nil, nil, nil, nil, nil, nil] + ), + 5 + ) + ) + ) + end end diff --git a/test/medium/test_814_binary_tree_pruning.rb b/test/medium/test_814_binary_tree_pruning.rb index f01b5410..156bfe5c 100644 --- a/test/medium/test_814_binary_tree_pruning.rb +++ b/test/medium/test_814_binary_tree_pruning.rb @@ -9,24 +9,12 @@ class BinaryTreePruningTest < ::Minitest::Test def test_default_one assert( ::TreeNode.are_equals( - ::TreeNode.new( - 1, - nil, - ::TreeNode.new( - 0, - nil, - ::TreeNode.new(1) - ) + ::TreeNode.build_tree( + [1, nil, 0, nil, 1] ), prune_tree( - ::TreeNode.new( - 1, - nil, - ::TreeNode.new( - 0, - ::TreeNode.new(0), - ::TreeNode.new(1) - ) + ::TreeNode.build_tree( + [1, nil, 0, 0, 1] ) ) ) @@ -36,28 +24,12 @@ def test_default_one def test_default_two assert( ::TreeNode.are_equals( - ::TreeNode.new( - 1, - nil, - ::TreeNode.new( - 1, - nil, - ::TreeNode.new(1) - ) + ::TreeNode.build_tree( + [1, nil, 1, nil, 1] ), prune_tree( - ::TreeNode.new( - 1, - ::TreeNode.new( - 0, - ::TreeNode.new(0), - ::TreeNode.new(0) - ), - ::TreeNode.new( - 1, - ::TreeNode.new(0), - ::TreeNode.new(1) - ) + ::TreeNode.build_tree( + [1, 0, 1, 0, 0, 0, 1] ) ) ) @@ -67,42 +39,12 @@ def test_default_two def test_default_three assert( ::TreeNode.are_equals( - ::TreeNode.new( - 1, - ::TreeNode.new( - 1, - ::TreeNode.new( - 1, - ::TreeNode.new(1), - ::TreeNode.new(1) - ) - ), - ::TreeNode.new( - 0, - nil, - ::TreeNode.new(1) - ) + ::TreeNode.build_tree( + [1, 1, 0, 1, 1, nil, 1] ), prune_tree( - ::TreeNode.new( - 1, - ::TreeNode.new( - 1, - ::TreeNode.new( - 1, - ::TreeNode.new( - 1, - ::TreeNode.new(0), - nil - ), - ::TreeNode.new(1) - ) - ), - ::TreeNode.new( - 0, - ::TreeNode.new(0), - ::TreeNode.new(1) - ) + ::TreeNode.build_tree( + [1, 1, 0, 1, 1, 0, 1, 0] ) ) ) diff --git a/test/medium/test_889_construct_binary_tree_from_preorder_and_postorder_traversal.rb b/test/medium/test_889_construct_binary_tree_from_preorder_and_postorder_traversal.rb index afe647c2..3b9ea99e 100644 --- a/test/medium/test_889_construct_binary_tree_from_preorder_and_postorder_traversal.rb +++ b/test/medium/test_889_construct_binary_tree_from_preorder_and_postorder_traversal.rb @@ -9,18 +9,8 @@ class ConstructBinaryTreeFromPreorderAndPostorderTraversalTest < ::Minitest::Tes def test_default_one assert( ::TreeNode.are_equals( - ::TreeNode.new( - 1, - ::TreeNode.new( - 2, - ::TreeNode.new(4), - ::TreeNode.new(5) - ), - ::TreeNode.new( - 3, - ::TreeNode.new(6), - ::TreeNode.new(7) - ) + ::TreeNode.build_tree( + [1, 2, 3, 4, 5, 6, 7] ), construct_from_pre_post( [1, 2, 4, 5, 3, 6, 7], @@ -33,7 +23,9 @@ def test_default_one def test_default_two assert( ::TreeNode.are_equals( - ::TreeNode.new(1), + ::TreeNode.build_tree( + [1] + ), construct_from_pre_post( [1], [1] diff --git a/test/medium/test_894_all_possible_full_binary_trees.rb b/test/medium/test_894_all_possible_full_binary_trees.rb index 83aa6978..17097bee 100644 --- a/test/medium/test_894_all_possible_full_binary_trees.rb +++ b/test/medium/test_894_all_possible_full_binary_trees.rb @@ -8,70 +8,20 @@ class AllPossibleFullBinaryTreesTest < ::Minitest::Test def test_default_one correct = [ - ::TreeNode.new( - 0, - ::TreeNode.new(0), - ::TreeNode.new( - 0, - ::TreeNode.new(0), - ::TreeNode.new( - 0, - ::TreeNode.new(0), - ::TreeNode.new(0) - ) - ) + ::TreeNode.build_tree( + [0, 0, 0, nil, nil, 0, 0, nil, nil, 0, 0] ), - ::TreeNode.new( - 0, - ::TreeNode.new(0), - ::TreeNode.new( - 0, - ::TreeNode.new( - 0, - ::TreeNode.new(0), - ::TreeNode.new(0) - ), - ::TreeNode.new(0) - ) + ::TreeNode.build_tree( + [0, 0, 0, nil, nil, 0, 0, 0, 0] ), - ::TreeNode.new( - 0, - ::TreeNode.new( - 0, - ::TreeNode.new(0), - ::TreeNode.new(0) - ), - ::TreeNode.new( - 0, - ::TreeNode.new(0), - ::TreeNode.new(0) - ) + ::TreeNode.build_tree( + [0, 0, 0, 0, 0, 0, 0] ), - ::TreeNode.new( - 0, - ::TreeNode.new( - 0, - ::TreeNode.new(0), - ::TreeNode.new( - 0, - ::TreeNode.new(0), - ::TreeNode.new(0) - ) - ), - ::TreeNode.new(0) + ::TreeNode.build_tree( + [0, 0, 0, 0, 0, nil, nil, nil, nil, 0, 0] ), - ::TreeNode.new( - 0, - ::TreeNode.new( - 0, - ::TreeNode.new( - 0, - ::TreeNode.new(0), - ::TreeNode.new(0) - ), - ::TreeNode.new(0) - ), - ::TreeNode.new(0) + ::TreeNode.build_tree( + [0, 0, 0, 0, 0, nil, nil, 0, 0] ) ] @@ -91,10 +41,8 @@ def test_default_one def test_default_two correct = [ - ::TreeNode.new( - 0, - ::TreeNode.new(0), - ::TreeNode.new(0) + ::TreeNode.build_tree( + [0, 0, 0] ) ] diff --git a/test/medium/test_919_complete_binary_tree_inserter.rb b/test/medium/test_919_complete_binary_tree_inserter.rb index 34993588..b554ee08 100644 --- a/test/medium/test_919_complete_binary_tree_inserter.rb +++ b/test/medium/test_919_complete_binary_tree_inserter.rb @@ -8,10 +8,8 @@ class CompleteBinaryTreeInserterTest < ::Minitest::Test def test_default_one cbt_inserter = ::CBTInserter.new( - ::TreeNode.new( - 1, - ::TreeNode.new(2), - nil + ::TreeNode.build_tree( + [1, 2] ) ) @@ -20,14 +18,8 @@ def test_default_one assert( ::TreeNode.are_equals( - ::TreeNode.new( - 1, - ::TreeNode.new( - 2, - ::TreeNode.new(4), - nil - ), - ::TreeNode.new(3) + ::TreeNode.build_tree( + [1, 2, 3, 4] ), cbt_inserter.get_root ) diff --git a/test/medium/test_951_flip_equivalent_binary_trees.rb b/test/medium/test_951_flip_equivalent_binary_trees.rb index 33afaada..84926f01 100644 --- a/test/medium/test_951_flip_equivalent_binary_trees.rb +++ b/test/medium/test_951_flip_equivalent_binary_trees.rb @@ -9,39 +9,11 @@ class FlipEquivalentBinaryTreesTest < ::Minitest::Test def test_default_one assert( flip_equiv( - ::TreeNode.new( - 1, - ::TreeNode.new( - 2, - ::TreeNode.new(4), - ::TreeNode.new( - 5, - ::TreeNode.new(7), - ::TreeNode.new(8) - ) - ), - ::TreeNode.new( - 3, - ::TreeNode.new(6), - nil - ) + ::TreeNode.build_tree( + [1, 2, 3, 4, 5, 6, nil, nil, nil, 7, 8] ), - ::TreeNode.new( - 1, - ::TreeNode.new( - 3, - nil, - ::TreeNode.new(6) - ), - ::TreeNode.new( - 2, - ::TreeNode.new(4), - ::TreeNode.new( - 5, - ::TreeNode.new(8), - ::TreeNode.new(7) - ) - ) + ::TreeNode.build_tree( + [1, 3, 2, nil, 6, 4, 5, nil, nil, nil, nil, 8, 7] ) ) ) @@ -53,7 +25,9 @@ def test_default_three assert( !flip_equiv( nil, - ::TreeNode.new(1) + ::TreeNode.build_tree( + [1] + ) ) ) end diff --git a/test/medium/test_958_check_completeness_of_a_binary_tree.rb b/test/medium/test_958_check_completeness_of_a_binary_tree.rb index 7b29bc70..352f8e3a 100644 --- a/test/medium/test_958_check_completeness_of_a_binary_tree.rb +++ b/test/medium/test_958_check_completeness_of_a_binary_tree.rb @@ -9,18 +9,8 @@ class CheckCompletenessOfABinaryTreeTest < ::Minitest::Test def test_default_one assert( is_complete_tree( - ::TreeNode.new( - 1, - ::TreeNode.new( - 2, - ::TreeNode.new(4), - ::TreeNode.new(5) - ), - ::TreeNode.new( - 3, - ::TreeNode.new(6), - nil - ) + ::TreeNode.build_tree( + [1, 2, 3, 4, 5, 6] ) ) ) @@ -29,18 +19,8 @@ def test_default_one def test_default_two assert( !is_complete_tree( - ::TreeNode.new( - 1, - ::TreeNode.new( - 2, - ::TreeNode.new(4), - ::TreeNode.new(5) - ), - ::TreeNode.new( - 3, - nil, - ::TreeNode.new(7) - ) + ::TreeNode.build_tree( + [1, 2, 3, 4, 5, nil, 7] ) ) ) diff --git a/test/medium/test_979_distribute_coins_in_binary_tree.rb b/test/medium/test_979_distribute_coins_in_binary_tree.rb index c78d3ebc..61c7dbcc 100644 --- a/test/medium/test_979_distribute_coins_in_binary_tree.rb +++ b/test/medium/test_979_distribute_coins_in_binary_tree.rb @@ -10,10 +10,8 @@ def test_default_one assert_equal( 2, distribute_coins( - ::TreeNode.new( - 3, - ::TreeNode.new(0), - ::TreeNode.new(0) + ::TreeNode.build_tree( + [3, 0, 0] ) ) ) @@ -23,10 +21,8 @@ def test_default_two assert_equal( 3, distribute_coins( - ::TreeNode.new( - 0, - ::TreeNode.new(3), - ::TreeNode.new(0) + ::TreeNode.build_tree( + [0, 3, 0] ) ) ) diff --git a/test/medium/test_988_smallest_string_starting_from_leaf.rb b/test/medium/test_988_smallest_string_starting_from_leaf.rb index 09acf648..5fa1c89f 100644 --- a/test/medium/test_988_smallest_string_starting_from_leaf.rb +++ b/test/medium/test_988_smallest_string_starting_from_leaf.rb @@ -10,18 +10,8 @@ def test_default_one assert_equal( 'dba', smallest_from_leaf( - ::TreeNode.new( - 0, - ::TreeNode.new( - 1, - ::TreeNode.new(3), - ::TreeNode.new(4) - ), - ::TreeNode.new( - 2, - ::TreeNode.new(3), - ::TreeNode.new(4) - ) + ::TreeNode.build_tree( + [0, 1, 2, 3, 4, 3, 4] ) ) ) @@ -31,18 +21,8 @@ def test_default_two assert_equal( 'adz', smallest_from_leaf( - ::TreeNode.new( - 25, - ::TreeNode.new( - 1, - ::TreeNode.new(1), - ::TreeNode.new(3) - ), - ::TreeNode.new( - 3, - ::TreeNode.new(0), - ::TreeNode.new(2) - ) + ::TreeNode.build_tree( + [25, 1, 3, 1, 3, 0, 2] ) ) ) @@ -52,22 +32,8 @@ def test_default_three assert_equal( 'abc', smallest_from_leaf( - ::TreeNode.new( - 2, - ::TreeNode.new( - 2, - nil, - ::TreeNode.new( - 1, - ::TreeNode.new(0), - nil - ) - ), - ::TreeNode.new( - 1, - ::TreeNode.new(0), - nil - ) + ::TreeNode.build_tree( + [2, 2, 1, nil, 1, 0, nil, 0] ) ) ) diff --git a/test/medium/test_998_maximum_binary_tree_ii.rb b/test/medium/test_998_maximum_binary_tree_ii.rb index b107e529..66894601 100644 --- a/test/medium/test_998_maximum_binary_tree_ii.rb +++ b/test/medium/test_998_maximum_binary_tree_ii.rb @@ -9,28 +9,12 @@ class MaximumBinaryTreeIITest < ::Minitest::Test def test_default_one assert( ::TreeNode.are_equals( - ::TreeNode.new( - 5, - ::TreeNode.new( - 4, - ::TreeNode.new(1), - ::TreeNode.new( - 3, - ::TreeNode.new(2), - nil - ) - ), - nil + ::TreeNode.build_tree( + [5, 4, nil, 1, 3, nil, nil, 2] ), insert_into_max_tree( - ::TreeNode.new( - 4, - ::TreeNode.new(1), - ::TreeNode.new( - 3, - ::TreeNode.new(2), - nil - ) + ::TreeNode.build_tree( + [4, 1, 3, nil, nil, 2] ), 5 ) @@ -41,28 +25,12 @@ def test_default_one def test_default_two assert( ::TreeNode.are_equals( - ::TreeNode.new( - 5, - ::TreeNode.new( - 2, - nil, - ::TreeNode.new(1) - ), - ::TreeNode.new( - 4, - nil, - ::TreeNode.new(3) - ) + ::TreeNode.build_tree( + [5, 2, 4, nil, 1, nil, 3] ), insert_into_max_tree( - ::TreeNode.new( - 5, - ::TreeNode.new( - 2, - nil, - ::TreeNode.new(1) - ), - ::TreeNode.new(4) + ::TreeNode.build_tree( + [5, 2, 4, nil, 1] ), 3 ) @@ -73,28 +41,12 @@ def test_default_two def test_default_three assert( ::TreeNode.are_equals( - ::TreeNode.new( - 5, - ::TreeNode.new( - 2, - nil, - ::TreeNode.new(1) - ), - ::TreeNode.new( - 4, - ::TreeNode.new(3), - nil - ) + ::TreeNode.build_tree( + [5, 2, 4, nil, 1, 3] ), insert_into_max_tree( - ::TreeNode.new( - 5, - ::TreeNode.new( - 2, - nil, - ::TreeNode.new(1) - ), - ::TreeNode.new(3) + ::TreeNode.build_tree( + [5, 2, 3, nil, 1] ), 4 )