Skip to content

Commit cd9eace

Browse files
committed
feat(leetcode/medium/2436-minimum-split-into-subarrays-with-gcd-greater-than-one.go)
1 parent 81216b7 commit cd9eace

File tree

2 files changed

+52
-1
lines changed

2 files changed

+52
-1
lines changed

coding-challange/leetcode/easy/2383-minimum-hours-of-training-to-win-a-competition/2383-minimum-hours-of-training-to-win-a-competition.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
2383-minimum-hours-of-training-to-win-a-competition
3-
leetcode/easy/2383. Minimum Hours of Training to Win a Competition
3+
leetcode/medium/2383. Minimum Hours of Training to Win a Competition
44
URL: https://leetcode.com/problems/minimum-hours-of-training-to-win-a-competition/
55
*/
66

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/*
2+
2436-minimum-split-into-subarrays-with-gcd-greater-than-one
3+
leetcode/medium/2436. Minimum Split Into Subarrays With GCD Greater Than One
4+
URL: https://leetcode.com/problems/minimum-split-into-subarrays-with-gcd-greater-than-one/
5+
*/
6+
7+
package main
8+
9+
import "fmt"
10+
11+
func gcd(a, b int) int {
12+
if b == 0 {
13+
return a
14+
}
15+
return gcd(b, a%b)
16+
}
17+
18+
func minimumSplits(nums []int) int {
19+
res := 0
20+
gcdUnit := 1
21+
22+
for _, num := range nums {
23+
gcdUnit = gcd(gcdUnit, num)
24+
25+
if gcdUnit == 1 {
26+
res++
27+
gcdUnit = num
28+
}
29+
}
30+
31+
return res
32+
}
33+
34+
func main() {
35+
nums := []int{12, 6, 3, 14, 8}
36+
fmt.Println(minimumSplits(nums))
37+
//Output: 2
38+
39+
nums = []int{4, 12, 6, 14}
40+
fmt.Println(minimumSplits(nums))
41+
//Output: 1
42+
43+
nums = []int{1981402, 28730329, 23776824,
44+
90153791, 97088698, 18823319,
45+
30711731, 68358369, 4953505,
46+
75293276, 93125894, 97088698,
47+
7302764, 8881740, 17171364,
48+
13618668, 59930520}
49+
fmt.Println(minimumSplits(nums))
50+
// 2
51+
}

0 commit comments

Comments
 (0)