3704 Count Partitions With Even Sum Difference
3704 Count Partitions With Even Sum Difference
Count Partitions with Even Sum Difference 
You are given an integer array nums of length n.
A partition is defined as an index i where 0 <= i < n - 1, splitting the array into two non-empty subarrays such that:
1
2
Left subarray contains indices [0, i].
Right subarray contains indices [i + 1, n - 1].
Return the number of partitions where the difference between the sum of the left and right subarrays is even.
Example 1:
Input: nums = [10,10,3,7,6]
Output: 4
Explanation:
The 4 partitions are:
1
2
3
4
[10], [10, 3, 7, 6] with a sum difference of 10 - 26 = -16, which is even.
[10, 10], [3, 7, 6] with a sum difference of 20 - 16 = 4, which is even.
[10, 10, 3], [7, 6] with a sum difference of 23 - 13 = 10, which is even.
[10, 10, 3, 7], [6] with a sum difference of 30 - 6 = 24, which is even.
Example 2:
Input: nums = [1,2,2]
Output: 0
Explanation:
No partition results in an even sum difference.
Example 3:
Input: nums = [2,4,6,8]
Output: 3
Explanation:
All partitions result in an even sum difference.
Constraints:
1
2
2 <= n == nums.length <= 100
1 <= nums[i] <= 100
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Solution:
def countPartitions(self, nums: List[int]) -> int:
left = []
right = []
temp = 0
for k in nums:
temp += k
left.append(temp)
temp = 0
for k in nums[::-1]:
temp += k
right.append(temp)
right.reverse()
res = 0
#print(left, right)
for i , k in enumerate(left[:-1]):
if abs(k - right[i+1]) % 2 == 0:
res += 1
return res
This post is licensed under CC BY 4.0 by the author.