Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth
Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

42,707 questions

55,468 answers

573 users

How to find the N smallest values in a 2D array in Ruby

1 Answer

0 votes
#
#   Find the N smallest values in a 2D array.
#
#   Approach:
#   1. Flatten the 2D array into a single list.
#   2. Sort the list.
#   3. Take the first N values.
#
#   Ruby's built‑in methods make this approach expressive
#   and efficient for typical workloads.
#

# Flatten a 2D array into a 1D array
def flatten(matrix)
  # matrix.flatten works because the array is only 2 levels deep
  matrix.flatten
end

# Extract the N smallest values
def smallest_n(matrix, n)
  flat = flatten(matrix)

  # Sort ascending
  sorted = flat.sort

  # Return the first N values
  sorted.take(n)
end

# Main

matrix = [
  [42, 12, 85,  3],
  [ 7, 99, 15, 23],
  [64,  1, 18, 30],
  [ 3, 55, 11, 90]
]

n = 5

values = smallest_n(matrix, n)

puts "The #{n} smallest values:"
puts values.join(" ")


#
# run:
#
# The 5 smallest values:
# 1 3 3 7 11
#

 



answered 3 days ago by avibootz
...