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
This function computes, for each index, the absolute difference between the sum of numbers to its left and the sum of numbers to its right. It first sums the entire array into right, then walks through the array once: for each element it subtracts the current number from right (so right becomes the sum of everything after the current index), computes Math.abs(left - right) for the result, and finally adds the current number to left before moving to the next index.
Language: javascript(2026-06-06 08:13)DONE
CPU Performance92.48%
Memory Performance62.83%
/**
* @param {number[]} nums
* @return {number[]}
*/
var leftRightDifference = function(nums) {
let right = 0;
for (const num of nums) {
right += num;
}
const n = nums.length;
const res = Array(n);
let left = 0;
for (let i = 0; i < n; i++) {
right -= nums[i];
res[i] = Math.abs(left - right);
left += nums[i];
}
return res;
};