2574. Left and Right Sum Differences
Description
You are given a 0-indexed integer array nums of size n.
Define two arrays leftSum and rightSum where:
leftSum[i]is the sum of elements to the left of the indexiin the arraynums. If there is no such element,leftSum[i] = 0.rightSum[i]is the sum of elements to the right of the indexiin the arraynums. If there is no such element,rightSum[i] = 0.
Return an integer array answer of size n where answer[i] = |leftSum[i] - rightSum[i]|.
Β
Example 1:
Input: nums = [10,4,8,3] Output: [15,1,11,22] Explanation: The array leftSum is [0,10,14,22] and the array rightSum is [15,11,3,0]. The array answer is [|0 - 15|,|10 - 11|,|14 - 3|,|22 - 0|] = [15,1,11,22].
Example 2:
Input: nums = [1] Output: [0] Explanation: The array leftSum is [0] and the array rightSum is [0]. The array answer is [|0 - 0|] = [0].
Β
Constraints:
1 <= nums.length <= 10001 <= nums[i] <= 105
Solutions
Solution 1: Prefix Sum
We define a variable \(l\) to represent the sum of elements to the left of index \(i\) in the array \(\textit{nums}\), and a variable \(r\) to represent the sum of elements to the right of index \(i\) in the array \(\textit{nums}\). Initially, \(l = 0\), \(r = \sum_{i = 0}^{n - 1} \textit{nums}[i]\).
We traverse the array \(\textit{nums}\). For the current number \(x\), we update \(r = r - x\). At this point, \(l\) and \(r\) represent the sum of elements to the left and right of index \(i\) in the array \(\textit{nums}\), respectively. We add the absolute difference of \(l\) and \(r\) to the answer array \(\textit{ans}\), then update \(l = l + x\).
After the traversal, we return the answer array \(\textit{ans}\).
The time complexity is \(O(n)\), where \(n\) is the length of the array \(\textit{nums}\). The space complexity is \(O(1)\), not counting the space for the return value.
Similar problems:
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |