Here, we will see how to solve Difference Between Element Sum and Digit Sum of an Array Solution of leet code 2535 problem.
You are given a positive integer array nums
.
- The element sum is the sum of all the elements in
nums
. - The digit sum is the sum of all the digits (not necessarily distinct) that appear in
nums
.
You have to return the absolute difference between the element sum and digit sum of nums
.
Note that the absolute difference between two integers x
and y
is defined as |x - y|
.
Example 1:
Input: nums = [2,16,7,4] Output: 9 Explanation: The element sum of nums is 2 + 16 + 7 + 4 = 29. The digit sum of nums is 2 + 1 + 6 + 7 + 4 = 20. The absolute difference between the element sum and digit sum is |29 - 20| = 9.
Example 2:
Input: nums = [1,2,3,4] Output: 0 Explanation: The element sum of nums is 1 + 2 + 3 + 4 = 10. The digit sum of nums is 1 + 2 + 3 + 4 = 10. The absolute difference between the element sum and digit sum is |10 - 10| = 0.
Approach:
- Take two sum variable. One sum variable stores total sum of elements of an array and second sum variable stores total digit sum of each elements of array.
- Iterate through vector
- Store element sum in total_sum variable
- Store digit sum of each elements in total_digit_sum variable
- Get the difference between total_sum and total_digit_sum variable value
Difference Between Element Sum and Digit Sum of an Array Solution in C++ and Go:
Here, we will be solving problem in multiple ways with code.
C++ code 1:
class Solution { public: int differenceOfSum(vector<int>& nums) { int total_sum = 0; int total_digit_sum = 0; for(int i = 0; i < nums.size(); i++) { // Store all the array elements sum total_sum += nums[i]; int n = nums[i], digit_sum = 0; // Store the digit sums of each elemenet of array while(n) { digit_sum += n % 10; n /= 10; } total_digit_sum += digit_sum; } // Get the diff between total sum total digit sum return abs(total_digit_sum - total_sum); } };
Go code 1:
func differenceOfSum(nums []int) int { var total_sum = 0; var total_digit_sum = 0; for i := 0; i < len(nums); i++ { // Store all the array elements sum total_sum += nums[i]; var n, digit_sum = nums[i], 0; // Store the digit sums of each elemenet of array for n != 0 { digit_sum += n % 10; n /= 10; } total_digit_sum += digit_sum; } // Get the diff between total sum total digit sum return int(math.Abs(float64(total_digit_sum - total_sum))) }
Output:
Input: nums = [2,16,7,4] Output: 9
Time complexity: O(n)
Space complexity: O(1)
To check more leetcode problem’s solution. Pls click given below link:
https://techieindoor.com/category/leetcode/
https://techieindoor.com/category/interview-questions/