题目 #
Given a 0-indexed integer array nums, find a 0-indexed integer array answer where:
- answer.length == nums.length.
- answer[i] = |leftSum[i] - rightSum[i]|.
Where:
- leftSum[i] is the sum of elements to the left of the index i in the array nums. If there is no such element, leftSum[i] = 0.
- rightSum[i] is the sum of elements to the right of the index i in the array nums. If there is no such element, rightSum[i] = 0.
Return the array answer.
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 <= 1000
- $1 <= nums[i] <= 10^5$
思路1 #
分析 #
- 照着做
代码 #
1func abs(a int) int {
2 if a < 0 {
3 return -a
4 }
5 return a
6}
7
8func leftRigthDifference(nums []int) []int {
9 result := make([]int, len(nums))
10 rsum := 0
11 for _, v := range nums {
12 rsum += v
13 }
14 lsum := 0
15 for i, v := range nums {
16 rsum -= v
17 result[i] = abs(lsum - rsum)
18 lsum += v
19 }
20 return result
21}