Skip to content

2654-minimum-number-of-operations-to-make-all-array-elements-equal-to-1

DevGod
DevGod
Elf Vtuber
/**
* @param {number[]} nums
* @return {number}
*/
var minOperations = function(nums) {
let GCD = function(A,B){
if(A == 0 || B == 0){return Math.max(A,B);}
return GCD(B%A,A);
}
let num1 = 0;
let G = 0;
for(let I = 0; I<nums.length; I++){
if(nums[I] == 1){num1++;}
G = GCD(G,nums[I]);
}
if(num1 > 0){return nums.length - num1;}
if(G > 1){return -1;}
let ans = nums.length;
for(let L = 0; L<nums.length; L++){
G = 0;
for(let R = L; R<nums.length; R++){
G = GCD(G,nums[R]);
if(G==1){
ans = Math.min(ans, R-L+1);
}
}
}
return (ans-1) + (nums.length-1);
};