题目
链接
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;}
};