Skip to content
Related Articles

Related Articles

Find sum of non-repeating (distinct) elements in an array
  • Difficulty Level : Basic
  • Last Updated : 26 Feb, 2021

Given an integer array with repeated elements, the task is to find sum of all distinct elements in array.
Examples: 
 

Input  : arr[] = {12, 10, 9, 45, 2, 10, 10, 45,10};
Output : 78
Here we take 12, 10, 9, 45, 2 for sum
because it's distinct elements 

Input : arr[] = {1, 10, 9, 4, 2, 10, 10, 45 , 4};
Output : 71

 

A Simple Solution is to use two nested loops. The outer loop picks an element one by one starting from the leftmost element. The inner loop checks if the element is present on left side of it. If present, then ignores the element.
Time Complexity : O(n2
Auxiliary Space : O(1)
A Better Solution of this problem is that using sorting technique we firstly sort all elements of array in ascending order and and find one by one distinct elements in array. 
 

C++




// C++ Find the sum of all non-repeated
// elements in an array
#include<bits/stdc++.h>
using namespace std;
 
// Find the sum of all non-repeated elements
// in an array
int findSum(int arr[], int n)
{
    // sort all elements of array
    sort(arr, arr + n);
 
    int sum = 0;
    for (int i=0; i<n; i++)
    {
        if (arr[i] != arr[i+1])
            sum = sum + arr[i];
    }
 
    return sum;
}
 
// Driver code
int main()
{
    int arr[] = {1, 2, 3, 1, 1, 4, 5, 6};
    int n = sizeof(arr)/sizeof(int);
    cout << findSum(arr, n);
    return 0;
}


Java




import java.util.Arrays;
 
// Java Find the sum of all non-repeated
// elements in an array
public class GFG {
 
// Find the sum of all non-repeated elements
// in an array
    static int findSum(int arr[], int n) {
        // sort all elements of array
 
        Arrays.sort(arr);
        
        int sum = arr[0];
        for (int i = 0; i < n-1; i++) {
            if (arr[i] != arr[i + 1]) {
                sum = sum + arr[i+1];
            }
        }
 
        return sum;
    }
 
// Driver code
    public static void main(String[] args) {
        int arr[] = {1, 2, 3, 1, 1, 4, 5, 6};
        int n = arr.length;
        System.out.println(findSum(arr, n));
 
    }
}


Python3




     
# Python3 Find the sum of all non-repeated
# elements in an array
 
  
# Find the sum of all non-repeated elements
# in an array
def findSum(arr,  n):
    # sort all elements of array
    arr.sort()
  
    sum = arr[0]
    for i in range(0,n-1):
        if (arr[i] != arr[i+1]):
            sum = sum + arr[i+1]
     
    return sum
  
# Driver code
def main():
    arr= [1, 2, 3, 1, 1, 4, 5, 6]
    n = len(arr)
    print(findSum(arr, n))
 
if __name__ == '__main__':
    main()
# This code is contributed by 29AjayKumar


C#




// C# Find the sum of all non-repeated
// elements in an array
using System;
class GFG
{
 
    // Find the sum of all non-repeated elements
    // in an array
    static int findSum(int []arr, int n)
    {
        // sort all elements of array
        Array.Sort(arr);
         
        int sum = arr[0];
        for (int i = 0; i < n - 1; i++)
        {
            if (arr[i] != arr[i + 1])
            {
                sum = sum + arr[i + 1];
            }
        }
        return sum;
    }
 
    // Driver code
    public static void Main()
    {
        int []arr = {1, 2, 3, 1, 1, 4, 5, 6};
        int n = arr.Length;
        Console.WriteLine(findSum(arr, n));
    }
}
 
// This code is contributed by 29AjayKumar


Javascript




<script>
 
// JavaScript Program to find the sum of all non-repeated
// elements in an array
 
// Find the sum of all non-repeated elements
// in an array
function findSum(arr, n)
{
    // sort all elements of array
    arr.sort();
 
    let sum = 0;
    for (let i=0; i<n; i++)
    {
        if (arr[i] != arr[i+1])
            sum = sum + arr[i];
    }
 
    return sum;
}
 
// Driver code
 
    let arr = [1, 2, 3, 1, 1, 4, 5, 6];
    let n = arr.length;
    document.write(findSum(arr, n));
 
// This code is contributed by Surbhi Tyagi
 
</script>


Output: 

21

Time Complexity : O(n log n) 
Space Complexity : O(1)
An Efficient solution of this problem is that using unordered_set we run a single for loop and which value comes first time its add in sum variable and store in hash table that for next time we not use this value.
 



C++




// C++ Find the sum of all non- repeated
// elements in an array
#include<bits/stdc++.h>
using namespace std;
 
// Find the sum of all non-repeated elements
// in an array
int findSum(int arr[],int n)
{
    int sum = 0;
 
    // Hash to store all element of array
    unordered_set< int > s;
    for (int i=0; i<n; i++)
    {
        if (s.find(arr[i]) == s.end())
        {
            sum += arr[i];
            s.insert(arr[i]);
        }
    }
 
    return sum;
}
 
// Driver code
int main()
{
    int arr[] = {1, 2, 3, 1, 1, 4, 5, 6};
    int n = sizeof(arr)/sizeof(int);
    cout << findSum(arr, n);
    return 0;
}


Java




// Java Find the sum of all non- repeated
// elements in an array
import java.util.*;
 
class GFG
{
     
    // Find the sum of all non-repeated elements
    // in an array
    static int findSum(int arr[], int n)
    {
        int sum = 0;
 
        // Hash to store all element of array
        HashSet<Integer> s = new HashSet<Integer>();
        for (int i = 0; i < n; i++)
        {
            if (!s.contains(arr[i]))
            {
                sum += arr[i];
                s.add(arr[i]);
            }
        }
        return sum;
    }
 
    // Driver code
    public static void main(String[] args)
    {
        int arr[] = {1, 2, 3, 1, 1, 4, 5, 6};
        int n = arr.length;
        System.out.println(findSum(arr, n));
    }
}
 
// This code is contributed by Rajput-Ji


Python3




# Python3 Find the sum of all
# non- repeated elements in an array
 
# Find the sum of all non-repeated
# elements in an array
def findSum(arr, n):
    s = set()
    sum = 0
 
    # Hash to store all element
    # of array
    for i in range(n):
        if arr[i] not in s:
            s.add(arr[i])
    for i in s:
        sum = sum + i
 
    return sum
 
# Driver code
arr = [1, 2, 3, 1, 1, 4, 5, 6]
n = len(arr)
print(findSum(arr, n))
 
# This code is contributed by Shrikant13


C#




// C# Find the sum of all non- repeated
// elements in an array
using System;
using System.Collections.Generic;
 
class GFG
{
     
    // Find the sum of all non-repeated elements
    // in an array
    static int findSum(int []arr, int n)
    {
        int sum = 0;
 
        // Hash to store all element of array
        HashSet<int> s = new HashSet<int>();
        for (int i = 0; i < n; i++)
        {
            if (!s.Contains(arr[i]))
            {
                sum += arr[i];
                s.Add(arr[i]);
            }
        }
        return sum;
    }
 
    // Driver code
    public static void Main(String[] args)
    {
        int []arr = {1, 2, 3, 1, 1, 4, 5, 6};
        int n = arr.Length;
        Console.WriteLine(findSum(arr, n));
    }
}
 
// This code is contributed by Rajput-Ji


Output: 
 

21

Time Complexity : O(n) 
Auxiliary Space : O(n)
This article is contributed by DANISH_RAZA. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :