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;
    }
};
posted @ 2024-11-08 10:05  EricsT  阅读(15)  评论(0编辑  收藏  举报