3969. Valid Subarrays With Matching Sum Digits I
Description
You are given an integer array nums and an integer digit x.
A subarray nums[l..r] is considered valid if the sum of its elements satisfies both of the following conditions:
- The first digit of the sum is equal to
x. - The last digit of the sum is equal to
x.
Return the number of valid subarrays.
Β
Example 1:
Input: nums = [1,100,1], x = 1
Output: 4
Explanation:
The valid subarrays are:
nums[0..0]:sum = 1nums[0..1]:sum = 1 + 100 = 101nums[1..2]:sum = 100 + 1 = 101nums[2..2]:sum = 1
Thus, the answer is 4.
Example 2:
Input: nums = [1], x = 2
Output: 0
Explanation:
The only subarray is nums[0..0] with a sum of 1, which does not satisfy the conditions.
Thus, the answer is 0.
Β
Constraints:
1 <= nums.length <= 15001 <= nums[i] <= 1091 <= x <= 9
Solutions
Solution 1: Enumeration
We can enumerate the left endpoint \(l\) of the subarray, and for each \(l\), we enumerate the right endpoint \(r\) in the range \([l, n)\), and calculate the sum of \(nums[l..r]\). If it satisfies the conditions, the answer is increased by one.
The time complexity is \(O(n^2)\), and the space complexity is \(O(1)\). Here, \(n\) is the length of the array \(nums\).
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |