38 lines
590 B
Go
38 lines
590 B
Go
// Package q2344 implements a solution for https://leetcode.com/problems/minimum-deletions-to-make-array-divisible/
|
|
package q2344
|
|
|
|
import "slices"
|
|
|
|
func gcd(a, b int) int {
|
|
if a < b {
|
|
a, b = b, a
|
|
}
|
|
|
|
for a%b != 0 {
|
|
a, b = b, a%b
|
|
}
|
|
return b
|
|
}
|
|
|
|
func minOperations(nums []int, numsDivide []int) int {
|
|
slices.Sort(nums)
|
|
|
|
gcdAll := numsDivide[0]
|
|
for _, num := range numsDivide {
|
|
gcdAll = gcd(gcdAll, num)
|
|
if gcdAll == 1 {
|
|
break
|
|
}
|
|
}
|
|
for i := range nums {
|
|
if nums[i] > gcdAll {
|
|
break
|
|
}
|
|
if gcdAll%nums[i] == 0 {
|
|
return i
|
|
}
|
|
}
|
|
return -1
|
|
}
|
|
|
|
var _ = minOperations
|