Skip to content
Related Articles

Related Articles

Find the only element that appears b times

View Discussion
Improve Article
Save Article
  • Difficulty Level : Easy
  • Last Updated : 18 Mar, 2022

Given an array where every element occurs ‘a’ times, except one element which occurs b (a>b) times. Find the element that occurs b times.

Examples:  

Input : arr[]  = [1, 1, 2, 2, 2, 3, 3, 3]
         a = 3, b = 2
Output : 1 

Add each number once and multiply the sum by a, we will get a times the sum of each element of the array. Store it as a_sum. Subtract the sum of the whole array from the a_sum and divide the result by (a-b). The number we get is the required number (which appears b times in the array).
 

C++




// CPP program to find the only element that
// appears b times
#include <bits/stdc++.h>
using namespace std;
 
int appearsbTimes(int arr[], int n, int a, int b)
{
    unordered_set<int> s;
 
    int a_sum = 0, sum = 0;
 
    for (int i = 0; i < n; i++) {
        if (s.find(arr[i]) == s.end()) {
            s.insert(arr[i]);
            a_sum += arr[i];
        }
 
        sum += arr[i];
    }
 
    a_sum = a * a_sum;
 
    return ((a_sum - sum) / (a - b));
}
 
int main()
{
    int arr[] = { 1, 1, 2, 2, 2, 3, 3, 3 };
    int a = 3, b = 2;
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << appearsbTimes(arr, n, a, b);
    return 0;
}

Java




// Java program to find the only element that
// appears b times
import java.util.*;
 
class GFG
{
static int appearsbTimes(int arr[], int n,
                         int a, int b)
{
    HashSet<Integer> s = new HashSet<Integer>();
 
    int a_sum = 0, sum = 0;
 
    for (int i = 0; i < n; i++)
    {
        if (!s.contains(arr[i]))
        {
            s.add(arr[i]);
            a_sum += arr[i];
        }
 
        sum += arr[i];
    }
    a_sum = a * a_sum;
 
    return ((a_sum - sum) / (a - b));
}
 
// Driver Code
public static void main(String[] args)
{
    int arr[] = { 1, 1, 2, 2, 2, 3, 3, 3 };
    int a = 3, b = 2;
    int n = arr.length;
    System.out.println(appearsbTimes(arr, n, a, b));
}
}
 
// This code is contributed by 29AjayKumar

Python3




# Python3 program to find the only
# element that appears b times
def appearsbTimes(arr, n, a, b):
 
    s = dict()
 
    a_Sum = 0
    Sum = 0
 
    for i in range(n):
        if (arr[i] not in s.keys()):
            s[arr[i]] = 1
            a_Sum += arr[i]
 
        Sum += arr[i]
         
    a_Sum = a * a_Sum
 
    return ((a_Sum - Sum) // (a - b))
 
# Driver code
arr = [1, 1, 2, 2, 2, 3, 3, 3]
a, b = 3, 2
n = len(arr)
print(appearsbTimes(arr, n, a, b))
 
# This code is contributed by mohit kumar

C#




// C# program to find the only element that
// appears b times
using System;
using System.Collections.Generic;
 
class GFG
{
     
static int appearsbTimes(int []arr, int n,
                        int a, int b)
{
    HashSet<int> s = new HashSet<int>();
 
    int a_sum = 0, sum = 0;
 
    for (int i = 0; i < n; i++)
    {
        if (!s.Contains(arr[i]))
        {
            s.Add(arr[i]);
            a_sum += arr[i];
        }
 
        sum += arr[i];
    }
    a_sum = a * a_sum;
 
    return ((a_sum - sum) / (a - b));
}
 
// Driver Code
public static void Main(String[] args)
{
    int []arr = { 1, 1, 2, 2, 2, 3, 3, 3 };
    int a = 3, b = 2;
    int n = arr.Length;
    Console.WriteLine(appearsbTimes(arr, n, a, b));
}
}
 
// This code is contributed by Princi Singh

Javascript




<script>
 
// Javascript program to find the only element that
// appears b times
 
function appearsbTimes(arr, n, a, b)
{
    var s = new Set();
 
    var a_sum = 0, sum = 0;
 
    for (var i = 0; i < n; i++) {
        if (!s.has(arr[i])) {
            s.add(arr[i]);
            a_sum += arr[i];
        }
 
        sum += arr[i];
    }
 
    a_sum = a * a_sum;
 
    return ((a_sum - sum) / (a - b));
}
 
var arr = [1, 1, 2, 2, 2, 3, 3, 3];
var a = 3, b = 2;
var n = arr.length;
document.write( appearsbTimes(arr, n, a, b));
 
</script>

Output: 

1

 

Time Complexity: O(n)
Auxiliary Space: O(n)

Please refer to the article below for more approaches.
Find the only element that appears k times.
 


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!