From d23c9ea4448f620cc047746678b9ad77b4299578 Mon Sep 17 00:00:00 2001 From: fartem Date: Mon, 6 May 2024 10:05:58 +0300 Subject: [PATCH] 2024-05-06 v. 5.6.1: added "2373. Largest Local Values in a Matrix" --- README.md | 1 + leetcode-ruby.gemspec | 2 +- .../2373_largest_local_values_in_a_matrix.rb | 31 +++++++++++++++++ ...t_2373_largest_local_values_in_a_matrix.rb | 33 +++++++++++++++++++ 4 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 lib/easy/2373_largest_local_values_in_a_matrix.rb create mode 100644 test/easy/test_2373_largest_local_values_in_a_matrix.rb diff --git a/README.md b/README.md index 3dc416b3..b11bf66a 100644 --- a/README.md +++ b/README.md @@ -421,3 +421,4 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/). | 2357. Make Array Zero by Subtracting Equal Amounts | [Link](https://leetcode.com/problems/make-array-zero-by-subtracting-equal-amounts/) | [Link](./lib/easy/2357_make_array_zero_by_subtracting_equal_amounts.rb) | | 2363. Merge Similar Items | [Link](https://leetcode.com/problems/merge-similar-items/) | [Link](./lib/easy/2363_merge_similar_items.rb) | | 2367. Number of Arithmetic Triplets | [Link](https://leetcode.com/problems/number-of-arithmetic-triplets/) | [Link](./lib/easy/2367_number_of_arithmetic_triplets.rb) | +| 2373. Largest Local Values in a Matrix | [Link](https://leetcode.com/problems/largest-local-values-in-a-matrix/) | [Link](./lib/easy/2373_largest_local_values_in_a_matrix.rb) | diff --git a/leetcode-ruby.gemspec b/leetcode-ruby.gemspec index 3d2a891b..93e1827e 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 = '5.6.0' + s.version = '5.6.1' s.license = 'MIT' s.files = ::Dir['lib/**/*.rb'] + %w[bin/leetcode-ruby README.md LICENSE] s.executable = 'leetcode-ruby' diff --git a/lib/easy/2373_largest_local_values_in_a_matrix.rb b/lib/easy/2373_largest_local_values_in_a_matrix.rb new file mode 100644 index 00000000..794c6320 --- /dev/null +++ b/lib/easy/2373_largest_local_values_in_a_matrix.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +# https://leetcode.com/problems/largest-local-values-in-a-matrix/ +# @param {Integer[][]} grid +# @return {Integer[][]} +def largest_local(grid) + n = grid.length - 2 + result = ::Array.new(n) { ::Array.new(n, 0) } + (0...n).each do |i| + (0...n).each do |j| + result[i][j] = highest(grid, i, j) + end + end + + result +end + +# @param {Integer[][]} grid +# @param {Integer} r +# @param {Integer} c +# @return {Integer} +def highest(grid, r, c) + max = 0 + (r...(r + 3)).each do |i| + (c...(c + 3)).each do |j| + max = [max, grid[i][j]].max + end + end + + max +end diff --git a/test/easy/test_2373_largest_local_values_in_a_matrix.rb b/test/easy/test_2373_largest_local_values_in_a_matrix.rb new file mode 100644 index 00000000..7175e139 --- /dev/null +++ b/test/easy/test_2373_largest_local_values_in_a_matrix.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +require_relative '../test_helper' +require_relative '../../lib/easy/2373_largest_local_values_in_a_matrix' +require 'minitest/autorun' + +class LargestLocalValuesInAMatrixTest < ::Minitest::Test + def test_default + assert_equal( + [[9, 9], [8, 6]], + largest_local( + [ + [9, 9, 8, 1], + [5, 6, 2, 6], + [8, 2, 6, 4], + [6, 2, 2, 2] + ] + ) + ) + assert_equal( + [[2, 2, 2], [2, 2, 2], [2, 2, 2]], + largest_local( + [ + [1, 1, 1, 1, 1], + [1, 1, 1, 1, 1], + [1, 1, 2, 1, 1], + [1, 1, 1, 1, 1], + [1, 1, 1, 1, 1] + ] + ) + ) + end +end