Skip to content

Commit f229d6b

Browse files
authored
Update 1775-equal-sum-arrays-with-minimum-number-of-operations.js
1 parent 1da96fa commit f229d6b

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

1775-equal-sum-arrays-with-minimum-number-of-operations.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,42 @@
1+
/**
2+
* @param {number[]} nums1
3+
* @param {number[]} nums2
4+
* @return {number}
5+
*/
6+
const minOperations = function(nums1, nums2) {
7+
const m = nums1.length, n = nums2.length
8+
if(m > n * 6 || n > m * 6) return -1
9+
const sum1 = nums1.reduce((ac, e) => ac + e, 0)
10+
const sum2 = nums2.reduce((ac, e) => ac + e, 0)
11+
let largerArr, smallerArr
12+
if(sum1 === sum2) return 0
13+
if(sum1 > sum2) {
14+
largerArr = nums1
15+
smallerArr = nums2
16+
} else {
17+
largerArr = nums2
18+
smallerArr = nums1
19+
}
20+
21+
const gain = []
22+
for(let e of largerArr) gain.push(e - 1)
23+
for(let e of smallerArr) gain.push(6 - e)
24+
gain.sort((a, b) => b - a)
25+
let diff = Math.abs(sum2 - sum1)
26+
let cnt = 0
27+
for(let e of gain) {
28+
diff -= e
29+
cnt++
30+
if(diff <= 0) return cnt
31+
}
32+
return -1
33+
};
34+
35+
36+
37+
38+
// another
39+
140
/**
241
* @param {number[]} nums1
342
* @param {number[]} nums2

0 commit comments

Comments
 (0)