From b7c6a33ecaebf735597cdd0034e810ae927bd354 Mon Sep 17 00:00:00 2001 From: pranavbabu <54139019+pranavbabu@users.noreply.github.com> Date: Sat, 19 Jul 2025 13:21:10 +0200 Subject: [PATCH] Fix O(n2) to be O(n) --- lib/money/money/allocation.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/money/money/allocation.rb b/lib/money/money/allocation.rb index efd0a431f9..1616e2d029 100644 --- a/lib/money/money/allocation.rb +++ b/lib/money/money/allocation.rb @@ -35,9 +35,9 @@ def self.generate(amount, parts, whole_amounts = true) result = [] remaining_amount = amount - + parts_sum = parts.sum + until parts.empty? do - parts_sum = parts.inject(0, :+) part = parts.pop current_split = 0 @@ -48,6 +48,7 @@ def self.generate(amount, parts, whole_amounts = true) result.unshift current_split remaining_amount -= current_split + parts_sum -= part end result