【leetcode】2574. 左右の要素の和の差 (jsで実装)

1.トピック

2574. 左要素と右要素の違い
ここに画像の説明を挿入

2.アイデア

この質問は、主に leftSum と rightSum の計算方法を理解するためのもので、これら 2 つの配列を取得すると、答えは自明になります。すべての場合を 2 つのタイプに分けます。1 つは添え字が 0 の場合で、もう 1 つはそれ以外の場合です。i が 0 の場合、leftSum[i] は 0、rightSum[i] は合計から nums[0] を引いたもの、それ以外の場合、leftSum[i] は leftSum[i - 1] + nums[i - 1]、rightSum[ i] は合計 - 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