Skip to content

Commit 2aaa320

Browse files
authored
Update Minimize Product Sum of Two Arrays.java
1 parent 6d24d46 commit 2aaa320

File tree

1 file changed

+22
-26
lines changed

1 file changed

+22
-26
lines changed
Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,25 @@
11
class Solution {
2-
public int minProductSum(int[] nums1, int[] nums2) {
3-
int[] frequencyOne = new int[101];
4-
int[] frequencyTwo = new int[101];
5-
for (int i = 0; i < nums1.length; i++) {
6-
frequencyOne[nums1[i]]++;
7-
frequencyTwo[nums2[i]]++;
2+
public int minProductSum(int[] nums1, int[] nums2) {
3+
int[] frequencyOne = new int[101];
4+
int[] frequencyTwo = new int[101];
5+
for (int i = 0; i < nums1.length; i++) {
6+
frequencyOne[nums1[i]]++;
7+
frequencyTwo[nums2[i]]++;
8+
}
9+
int productSum = 0;
10+
int idxOne = 1;
11+
int idxTwo = 100;
12+
while (idxOne < 101 && idxTwo > 0) {
13+
if (frequencyOne[idxOne] == 0) {
14+
idxOne++;
15+
} else if (frequencyTwo[idxTwo] == 0) {
16+
idxTwo--;
17+
} else {
18+
productSum += idxOne * idxTwo;
19+
frequencyOne[idxOne]--;
20+
frequencyTwo[idxTwo]--;
21+
}
22+
}
23+
return productSum;
824
}
9-
int idxOne = 0;
10-
int idxTwo = 100;
11-
int sum = 0;
12-
while (idxOne < 101 && idxTwo >= 0) {
13-
while (idxOne < 101 && frequencyOne[idxOne] == 0) {
14-
idxOne++;
15-
}
16-
while (idxTwo >= 0 && frequencyTwo[idxTwo] == 0) {
17-
idxTwo--;
18-
}
19-
if (idxOne == 101 || idxTwo == -1) {
20-
break;
21-
}
22-
int counter = Math.min(frequencyOne[idxOne], frequencyTwo[idxTwo]);
23-
sum += counter * idxOne * idxTwo;
24-
frequencyOne[idxOne] -= counter;
25-
frequencyTwo[idxTwo] -= counter;
26-
}
27-
return sum;
28-
}
2925
}

0 commit comments

Comments
 (0)