From f758a515d434e404cf9cc868a31fac4f6cc45fbe Mon Sep 17 00:00:00 2001 From: fartem Date: Mon, 15 Apr 2024 07:26:33 +0300 Subject: [PATCH] 2024-04-15 v. 5.4.6: added "2293. Min Max Game" --- README.md | 1 + leetcode-ruby.gemspec | 2 +- lib/easy/2293_min_max_game.rb | 11 +++++++++++ test/easy/test_2293_min_max_game.rb | 12 ++++++++++++ 4 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 lib/easy/2293_min_max_game.rb create mode 100644 test/easy/test_2293_min_max_game.rb diff --git a/README.md b/README.md index 71dc06c0..92bf3fd6 100644 --- a/README.md +++ b/README.md @@ -406,3 +406,4 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/). | 2278. Percentage of Letter in String | [Link](https://leetcode.com/problems/percentage-of-letter-in-string/) | [Link](./lib/easy/2278_percentage_of_letter_in_string.rb) | | 2283. Check if Number Has Equal Digit Count and Digit Value | [Link](https://leetcode.com/problems/check-if-number-has-equal-digit-count-and-digit-value/) | [Link](./lib/easy/2283_check_if_number_has_equal_digit_count_and_digit_value.rb) | | 2287. Rearrange Characters to Make Target String | [Link](https://leetcode.com/problems/rearrange-characters-to-make-target-string/) | [Link](./lib/easy/2287_rearrange_characters_to_make_target_string.rb) | +| 2293. Min Max Game | [Link](https://leetcode.com/problems/min-max-game/) | [Link](./lib/easy/2293_min_max_game.rb) | diff --git a/leetcode-ruby.gemspec b/leetcode-ruby.gemspec index 3e24c8b0..42fcb1c3 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.4.5' + s.version = '5.4.6' s.license = 'MIT' s.files = ::Dir['lib/**/*.rb'] + %w[bin/leetcode-ruby README.md LICENSE] s.executable = 'leetcode-ruby' diff --git a/lib/easy/2293_min_max_game.rb b/lib/easy/2293_min_max_game.rb new file mode 100644 index 00000000..2eb79ecb --- /dev/null +++ b/lib/easy/2293_min_max_game.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +# https://leetcode.com/problems/min-max-game/ +# @param {Integer[]} nums +# @return {Integer} +def min_max_game(nums) + return nums.first if nums.length == 1 + + nums = nums.each_slice(2).to_a.map.with_index { |a, i| i.even? ? a.min : a.max } + min_max_game(nums) +end diff --git a/test/easy/test_2293_min_max_game.rb b/test/easy/test_2293_min_max_game.rb new file mode 100644 index 00000000..de08f775 --- /dev/null +++ b/test/easy/test_2293_min_max_game.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +require_relative '../test_helper' +require_relative '../../lib/easy/2293_min_max_game' +require 'minitest/autorun' + +class MinMaxGameTest < ::Minitest::Test + def test_default + assert_equal(1, min_max_game([1, 3, 5, 2, 4, 8, 2, 2])) + assert_equal(3, min_max_game([3])) + end +end