From c833ec074d053e9ac2f31b8457fb3b4ab70717eb Mon Sep 17 00:00:00 2001 From: Valentyn Kolesnikov Date: Tue, 25 Feb 2025 07:32:31 +0200 Subject: [PATCH] Improved task 2610 --- .../Solution.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/main/java/g2601_2700/s2610_convert_an_array_into_a_2d_array_with_conditions/Solution.java b/src/main/java/g2601_2700/s2610_convert_an_array_into_a_2d_array_with_conditions/Solution.java index c07d2924f..a98641f11 100644 --- a/src/main/java/g2601_2700/s2610_convert_an_array_into_a_2d_array_with_conditions/Solution.java +++ b/src/main/java/g2601_2700/s2610_convert_an_array_into_a_2d_array_with_conditions/Solution.java @@ -1,23 +1,20 @@ package g2601_2700.s2610_convert_an_array_into_a_2d_array_with_conditions; -// #Medium #Array #Hash_Table #2023_08_30_Time_2_ms_(97.24%)_Space_43.9_MB_(80.58%) +// #Medium #Array #Hash_Table #2025_02_25_Time_1_ms_(100.00%)_Space_45.01_MB_(53.07%) import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; public class Solution { public List> findMatrix(int[] nums) { List> res = new ArrayList<>(); - Map map = new HashMap<>(); - for (int x : nums) { - map.put(x, map.getOrDefault(x, 0) + 1); - int idx = map.get(x); - if (res.size() < idx) { + int n = nums.length; + int[] freq = new int[n + 1]; + for (int num : nums) { + if (res.size() < ++freq[num]) { res.add(new ArrayList<>()); } - res.get(idx - 1).add(x); + res.get(freq[num] - 1).add(num); } return res; }