自学内容网 自学内容网

2535. 数组元素和与数字和的绝对差(24.9.26)

题目

问题描述:
给你一个正整数数组 nums

  • 元素和是 nums 中的所有元素相加求和。
  • 数字和是 nums 中每一个元素的每一数位(重复数位需多次求和)相加求和。
    返回元素和与数字和的绝对差。注意:两个整数 xy 的绝对差定义为 |x - y|

示例 1:
输入:nums = [1, 15, 6, 3]
输出:9
解释:

  • nums 的元素和是 1 + 15 + 6 + 3 = 25。
  • nums 的数字和是 1 + 1 + 5 + 6 + 3 = 16。
  • 元素和与数字和的绝对差是 |25 - 16| = 9

示例 2:
输入:nums = [1, 2, 3, 4]
输出:0
解释:

  • nums 的元素和是 1 + 2 + 3 + 4 = 10。
  • nums 的数字和是 1 + 2 + 3 + 4 = 10。
  • 元素和与数字和的绝对差是 |10 - 10| = 0

提示:

  • 1 <= nums.length <= 2000。
  • 1 <= nums[i] <= 2000。

解题思路

利用两个值去记录所有数之和,另一个记录每位数之和,最后返回他们的绝对值之差

代码

class Solution {
public:
    int differenceOfSum(vector<int>& nums) {
        int sum1=0,sum2=0;
        for(int &x:nums){
            sum1+=x;
            while(x){
                sum2+=x%10;
                x/=10;
            }
        }
        return abs(sum1-sum2);
    }
};

原文地址:https://blog.csdn.net/qq_60624992/article/details/142551882

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!