【leetcode】2574. 左右元素和的差值(js实现)

1. 题目

2574. 左右元素和的差值
在这里插入图片描述

2. 思路

这道题主要是搞懂如何计算leftSum和rightSum就可以了,得到这两个数组以后answer的答案就显而易见了。我是将所有的情况分为两种,一种是下标为0的时候,另外一种是其他情况。i为0的时候,leftSum[i]为0,rightSum[i]为总和减去nums[0],其他情况,leftSum[i]为leftSum[i - 1] + nums[i - 1],rightSum[i] 为 sum - nums[i] - leftSum[i]。

3. 代码实现

/**
 * @param {number[]} nums
 * @return {number[]}
 */
var leftRigthDifference = function(nums) {
    
    
    let leftSum = [], rightSum = [], sum = 0, answer = []
    const n = nums.length
    nums.forEach(item => sum += item)
    for (let i = 0; i < n; i++) {
    
    
        if (i === 0) {
    
    
            leftSum[i] = 0
            rightSum[i] = sum - nums[i]
            answer[i] = Math.abs(leftSum[i] - rightSum[i])
            continue
        } 
        leftSum[i] = leftSum[i - 1] + nums[i - 1]
        rightSum[i] = sum - nums[i] - leftSum[i]
        answer[i] = Math.abs(leftSum[i] - rightSum[i])
    }
    // console.log(leftSum, rightSum);
    return answer
};
  • 总感觉我的代码写的比较冗余,求指教~

猜你喜欢

转载自blog.csdn.net/weixin_44109827/article/details/129316147