class Solution {
public:
int differenceOfSum(vector<int>& nums) {
}
};
2535. 数组元素和与数字和的绝对差
给你一个正整数数组 nums
。
nums
中的所有元素相加求和。nums
中每一个元素的每一数位(重复数位需多次求和)相加求和。返回 元素和 与 数字和 的绝对差。
注意:两个整数 x
和 y
的绝对差定义为 |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
原站题解
javascript 解法, 执行用时: 51 ms, 内存消耗: 51.3 MB, 提交时间: 2024-09-26 09:13:34
/** * @param {number[]} nums * @return {number} */ var differenceOfSum = function(nums) { let ans = 0; for (let x of nums) { ans += x; // 累加元素和 while (x) { ans -= x % 10; // 减去数位和 x = Math.floor(x / 10); } } return ans; };
cpp 解法, 执行用时: 12 ms, 内存消耗: 17.9 MB, 提交时间: 2024-09-26 09:12:24
class Solution { public: int differenceOfSum(vector<int>& nums) { int ans = 0; for (int x : nums) { ans += x; // 累加元素和 while (x) { ans -= x % 10; // 减去数位和 x /= 10; } } return ans; } };
java 解法, 执行用时: 2 ms, 内存消耗: 43.9 MB, 提交时间: 2024-09-26 09:11:59
class Solution { public int differenceOfSum(int[] nums) { int ans = 0; for (int x : nums) { ans += x; // 累加元素和 while (x > 0) { ans -= x % 10; // 减去数位和 x /= 10; } } return ans; } }
rust 解法, 执行用时: 0 ms, 内存消耗: 1.9 MB, 提交时间: 2023-09-12 15:09:18
impl Solution { pub fn difference_of_sum(nums: Vec<i32>) -> i32 { nums.into_iter().fold(0, |mut diff, num| { let mut x = num; diff += x; while x != 0 { diff -= x % 10; x /= 10; } diff }) } }
rust 解法, 执行用时: 4 ms, 内存消耗: 1.9 MB, 提交时间: 2023-09-12 15:08:12
impl Solution { pub fn difference_of_sum(nums: Vec<i32>) -> i32 { let mut s1 = 0; let mut s2 = 0; for mut num in nums { s1 += num; while num > 0 { s2 += num % 10; num /= 10; } } s1 - s2 } }
php 解法, 执行用时: 36 ms, 内存消耗: 19.3 MB, 提交时间: 2023-09-12 11:46:31
class Solution { /** * @param Integer[] $nums * @return Integer */ function differenceOfSum($nums) { $ans = 0; foreach ($nums as $x ) { $ans += $x; while ( $x > 0 ) { $ans -= $x % 10; $x = intval($x/10); } } return $ans; } }
golang 解法, 执行用时: 12 ms, 内存消耗: 5.2 MB, 提交时间: 2023-01-17 14:53:28
func differenceOfSum(nums []int) (ans int) { for _, x := range nums { for ans += x; x > 0; x /= 10 { ans -= x % 10 } } return }
python3 解法, 执行用时: 52 ms, 内存消耗: 15.1 MB, 提交时间: 2023-01-17 14:53:13
class Solution: def differenceOfSum(self, nums: List[int]) -> int: ans = 0 for x in nums: ans += x while x: ans -= x % 10 x //= 10 return ans