LeetCode 2535[陣列元素和與數字和的絕對差值]

EricsT發表於2024-11-08

題目

連結

LeetCode 2535[陣列元素和與數字和的絕對差值]

詳情

LeetCode 2535[陣列元素和與數字和的絕對差值]

例項

LeetCode 2535[陣列元素和與數字和的絕對差值]

提示

LeetCode 2535[陣列元素和與數字和的絕對差值]

題解

思路

遍歷容器,依次求出數字和與元素和,然後求差值:

透過 getSun 函式,求取元素的數字和

getSun 函式的實現:

  將其對10取餘操作,獲取的餘數即為當前位的數字

  然後再除以10,繼續對其進行10的取餘操作,獲取各個位的數字 將各個位的數字相加並返回 llSunNum

遍歷求出元素和 llSun

對 llSun 和 llSunNum 進行差值運算,然後透過 fabs 函式來進行絕對值操作,即可獲取絕對差,並返回

或者先對 llSun 和 llSunNum 判斷一個大小,用大的減小的,即可獲取絕對差,並返回

程式碼

class Solution {
public:

    int getSun(int num)
    {
        int iRet = 0;

        while (num)
        {
            iRet += num % 10;
            num /= 10;
        }

        return iRet;
    }

    int differenceOfSum(vector<int>& nums) {
        
        long long llSun = 0;
        long long llSunNum = 0;

        for (int i = 0; i < nums.size(); i++)
        {
            llSun += nums.at(i);
            llSunNum += getSun(nums.at(i));
        }

        if (llSun > llSunNum)
            return llSun - llSunNum;
        else 
            return llSunNum - llSun;
    }
};

相關文章