Skip to content

Commit 1bb16b8

Browse files
authored
Create 2654-minimum-number-of-operations-to-make-all-array-elements-equal-to-1.js
1 parent aa2cb91 commit 1bb16b8

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number}
4+
*/
5+
var minOperations = function(nums) {
6+
let n = nums.length;
7+
8+
let ones = cntOnes();
9+
if (ones) return n - ones;
10+
11+
for (let r = 2; r <= n; r++) {
12+
for (let i = 0; i + r <= n; i++) {
13+
let g = 0;
14+
for (let j = i; j < i + r; j++) g = gcd(g, nums[j]);
15+
if (g == 1) return r - 1 + n - 1;
16+
}
17+
}
18+
19+
return -1;
20+
21+
function cntOnes() {
22+
let res = 0
23+
for(const e of nums) {
24+
if(e === 1) res++
25+
}
26+
return res
27+
}
28+
function gcd(a, b) {
29+
return b ? gcd(b, a % b) : a
30+
}
31+
};

0 commit comments

Comments
 (0)