Skip to content

Commit 10f153c

Browse files
committed
Time: 456 ms (35%), Space: 18.1 MB (70%) - LeetHub
1 parent fc3f904 commit 10f153c

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# time complexity: O(n^2)
2+
# space complexity: O(n)
3+
import math
4+
from typing import List
5+
6+
7+
class Solution:
8+
def validSubarraySplit(self, nums: List[int]) -> int:
9+
n = len(nums)
10+
dp = [float('inf') for _ in range(n + 1)]
11+
dp[0] = 0
12+
for right in range(1, n + 1):
13+
for left in range(1, right + 1):
14+
if math.gcd(nums[left - 1], nums[right - 1]) > 1:
15+
dp[right] = min(dp[right], dp[left - 1] + 1)
16+
17+
return -1 if dp[-1] == float('inf') else dp[-1]
18+
19+
20+
nums = [2, 6, 3, 4, 3]
21+
print(Solution().validSubarraySplit(nums))
22+
nums = [3, 5]
23+
print(Solution().validSubarraySplit(nums))
24+
nums = [1, 2, 1]
25+
print(Solution().validSubarraySplit(nums))

0 commit comments

Comments
 (0)