題目
連結
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;
}
};