Skip to content

Commit

Permalink
2024-04-26 v. 5.5.5: added "2341. Maximum Number of Pairs in Array"
Browse files Browse the repository at this point in the history
  • Loading branch information
fartem committed Apr 26, 2024
1 parent 75afaa1 commit 1eedbb9
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 1 deletion.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -415,3 +415,4 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/).
| 2325. Decode the Message | [Link](https://leetcode.com/problems/decode-the-message/) | [Link](./lib/easy/2325_decode_the_message.rb) |
| 2331. Evaluate Boolean Binary Tree | [Link](https://leetcode.com/problems/evaluate-boolean-binary-tree/) | [Link](./lib/easy/2331_evaluate_boolean_binary_tree.rb) |
| 2335. Minimum Amount of Time to Fill Cups | [Link](https://leetcode.com/problems/minimum-amount-of-time-to-fill-cups/) | [Link](./lib/easy/2335_minimum_amount_of_time_to_fill_cups.rb) |
| 2341. Maximum Number of Pairs in Array | [Link](https://leetcode.com/problems/maximum-number-of-pairs-in-array/) | [Link](./lib/easy/2341_maximum_number_of_pairs_in_array.rb) |
2 changes: 1 addition & 1 deletion leetcode-ruby.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ require 'English'
::Gem::Specification.new do |s|
s.required_ruby_version = '>= 3.0'
s.name = 'leetcode-ruby'
s.version = '5.5.4'
s.version = '5.5.5'
s.license = 'MIT'
s.files = ::Dir['lib/**/*.rb'] + %w[bin/leetcode-ruby README.md LICENSE]
s.executable = 'leetcode-ruby'
Expand Down
17 changes: 17 additions & 0 deletions lib/easy/2341_maximum_number_of_pairs_in_array.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# frozen_string_literal: true

# https://leetcode.com/problems/maximum-number-of-pairs-in-array/
# @param {Integer[]} nums
# @return {Integer[]}
def number_of_pairs(nums)
map = {}
nums.each { |num| map[num] = map.fetch(num, 0) + 1 }
pairs = 0
leftover = 0
map.each_value do |count|
pairs += count / 2
leftover += count % 2
end

[pairs, leftover]
end
13 changes: 13 additions & 0 deletions test/easy/test_2341_maximum_number_of_pairs_in_array.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# frozen_string_literal: true

require_relative '../test_helper'
require_relative '../../lib/easy/2341_maximum_number_of_pairs_in_array'
require 'minitest/autorun'

class MaximumNumberOfPairsInArrayTest < ::Minitest::Test
def test_default
assert_equal([3, 1], number_of_pairs([1, 3, 2, 1, 3, 2, 2]))
assert_equal([1, 0], number_of_pairs([1, 1]))
assert_equal([0, 1], number_of_pairs([0]))
end
end

0 comments on commit 1eedbb9

Please sign in to comment.