1631. Number Of Sub Arrays With Odd Sum¶
Difficulty: Medium
LeetCode Problem View on GitHub
1631. Number of Sub-arrays With Odd Sum
Medium
Given an array of integers arr, return the number of subarrays with an odd sum.
Since the answer can be very large, return it modulo 109 + 7.
Example 1:
Input: arr = [1,3,5] Output: 4 Explanation: All subarrays are [[1],[1,3],[1,3,5],[3],[3,5],[5]] All sub-arrays sum are [1,4,9,3,8,5]. Odd sums are [1,9,3,5] so the answer is 4.
Example 2:
Input: arr = [2,4,6] Output: 0 Explanation: All subarrays are [[2],[2,4],[2,4,6],[4],[4,6],[6]] All sub-arrays sum are [2,6,12,4,10,6]. All sub-arrays have even sum and the answer is 0.
Example 3:
Input: arr = [1,2,3,4,5,6,7] Output: 16
Constraints:
1 <= arr.length <= 1051 <= arr[i] <= 100
Solution¶
class Solution {
private int mod = (int)(1e9 + 7);
public int numOfSubarrays(int[] arr) {
int n = arr.length;
int even = 1, odd = 0;
int res = 0;
int sum = 0;
for (int i = 0; i < n; i++) {
sum += arr[i];
if (sum % 2 == 0) {
even++;
res += odd;
}
else {
odd++;
res += even;
}
res = res % mod;
}
return res;
}
}
Complexity Analysis¶
- Time Complexity:
O(?) - Space Complexity:
O(?)
Approach¶
Detailed explanation of the approach will be added here