ھڪڙي صف ۾ غير جملي پسند عناصر (جدا) عناصر جي رقم ڳوليو


تڪليف جي سطح آسان
بار بار پڇڻ ۾ آڪسيجن والٽ
ڪيريو هاش هاشمي ترتيب ڏيڻ

مسئلي جو بيان

هڪ عددي قطار ، A [] بار بار عنصرن سان ملي ، "صف ۾ بي عبرت عناصر (جدا) عناصر کا مجموعہ تلاش ڪريو" مسئلو صف ۾ سڀ مختلف عناصر جو مجموعو ڳولڻ لاءِ پڇي ٿو. تنهن ڪري ، آسان طور تي انگ شامل ڪريو جيڪي صف ۾ ورجائي نه رهيا آهيون.

مثال

A[]={1, 4, 2, 1, 5, 2, 3, 2}
11

وضاحت: غير بار بار ڏيڻ وارا عنصر آهن: 4 ، 5 ، 3. تنهن ڪري انهن جو مجموعو = 4 + 5 + 3 = 11.

برادري قوت

هڪ صف ۾ بي عيب عناصر (ڌار) عناصر جو مجموعو ڳولڻ جو بنيادي خيال

هر عنصر لاءِ ، چڪاس ڪريو ته ڇا اتي ڪو ٻيو عنصر موجود آهي يا نه جنهن جي قيمت ساڳي آهي ۽ هاڻوڪي انڊيڪس کان هڪ انڊيڪس گهٽ آهي. جيڪڏھن اھڙو عنصر موجود ناھي ته موجوده عنصر کي جواب ۾ شامل ڪريو ٻي صورت ۾ ان کي ڇڏي ڏيو.

الورورٿم

1. Run a loop for I in range 0 to n-1 
    1. Run a loop for j in range 0 to i 
        1. If j==i, add A[i]. 
        2. If A[i] is equal to A[j], break out from this loop. 
    2. Return.

ڪوڊ

سي ++ ڪوڊ

#include <bits/stdc++.h>
using namespace std;
void sumOfDistinctElements(vector<int> A)
{
    int n = A.size();
    int sum = 0;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j <= i; j++)
        {
            if (j == i)
            {
                sum += A[i];
            }
            if (A[i] == A[j])
            {
                break;
            }
        }
    }
    cout << "Sum of distinct Elements in the array is: " << sum << endl;
    return;
}
int main()
{
    vector<int> A = {1, 4, 2, 1, 5, 2, 3, 2};
    sumOfDistinctElements(A);
    return 0;
}
Sum of distinct Elements in the array is: 15

جاوا ڪوڊ

public class Main
{   
    static void sumOfDistinctElements(int A[])
    {
        int n = A.length;
        int sum = 0;
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j <= i; j++)
            {
                if (j == i)
                {
                    sum += A[i];
                }
                if (A[i] == A[j])
                {
                    break;
                }
            }
        }
        System.out.println("Sum of distinct Elements in the array is: " + sum);
        return;
    }
  public static void main(String[] args) {
    int A[] = {1, 4, 2, 1, 5, 2, 3, 2};
        sumOfDistinctElements(A);
  }
}
Sum of distinct Elements in the array is: 15

پيچيدگي تجزيي

وقت جي پيچيدگي

اسان وٽ ٻه ٺهيل نوپ آهن ، هر هڪ جي سائز n. پوءِ وقت جي پيچيدگي آهي اي (اين ^ 2).

خلائي پيچيدگي

اسان ڪا به اضافي جاءِ نه وٺي رهيا آهيون تنهنڪري خلائي پيچيدگي آهي اي (1).

اصلاح جو انداز

هڪ صف ۾ بي عيب عناصر (ڌار) عناصر جو مجموعو ڳولڻ جو بنيادي خيال

اسان هڪ هش ٽيبل برقرار رکنداسين جيڪو اسان اڳ ۾ ڇپيل عناصر کي اسٽور ڪندو. تنهن ڪري ، اسان صف کي دهرائينداسين ، جيڪڏهن اسان کي صف ۾ هڪ عنصر مليو آهي جيڪو هش ٽيبل ۾ موجود نه آهي ته پوءِ اسان اهو عنصر جواب ۾ شامل ڪنداسين ۽ هيش ٽيبل ۾ داخل ڪنداسين ، ٻي صورت ۾ اسان اهو عنصر ڇڏي ڏينداسين

الورورٿم

1. Declare a hash table.
2. Run a loop for I in range 0 to n-1:
    1. If A[i] is not present in the hash table, then add it and insert it in the hash table.
    2. If A[i] is not present in the hash table then skip it.
3. Return.

مثال

چوڻ ڏيو

A[]={3, 3, 1, 2 ,1}

کاٻي پاسي واري ٽيبل اسان جو انڪس ريٽ ۽ ارغواني رنگ جي نقطي هاڻوڪي انڊيڪس ڏانهن آهي.

ٽيبل تي سا isي آهي هش ٽيبل

ھڪڙي صف ۾ غير جملي پسند عناصر (جدا) عناصر جي رقم ڳوليو

ھڪڙي صف ۾ غير جملي پسند عناصر (جدا) عناصر جي رقم ڳوليو

ڪوڊ

سي ++ ڪوڊ

#include <bits/stdc++.h>
using namespace std;
void sumOfDistinctElements(vector<int> A)
{
    int n = A.size();
    int sum = 0;
    unordered_set<int> hash_table;
    for (int i = 0; i < n; i++)
    {
        if (hash_table.count(A[i]) == 0) //hash_table.count(x) returns 1 if x is present in the hash_table otherwise returns 0
        {
            hash_table.insert(A[i]);
            sum += A[i];
        }
    }
    cout << "Sum of distinct Elements in the array is: " << sum << endl;
    return;
}
int main()
{
    vector<int> A = {1, 4, 2, 1, 5, 2, 3, 2};
    sumOfDistinctElements(A);
    return 0;
}
Sum of distinct Elements in the array is: 15

جاوا ڪوڊ

import java.util.*;
public class Main
{   
    static void sumOfDistinctElements(int A[])
    {
        int n = A.length;
        int sum = 0;
        HashSet<Integer> hash_table = new HashSet<Integer>(); 
        for (int i = 0; i < n; i++) 
        { 
            if (!hash_table.contains(A[i])) 
            { 
                sum += A[i]; 
                hash_table.add(A[i]); 
            } 
        } 
        System.out.println("Sum of distinct Elements in the array is: " + sum);
        return;
    }
  public static void main(String[] args) {
    int A[] = {1, 4, 2, 1, 5, 2, 3, 2};
        sumOfDistinctElements(A);
  }
}
Sum of distinct Elements in the array is: 15

پيچيدگي تجزيي

وقت جي پيچيدگي

اسان صرف هڪ ڀيرو واري دڙي کي ترتيب ڏين ٿا ۽ اڻ ترتيب ٿيل سيٽ ۾ داخل فنڪشن جو وقت پيچيدگي آهي O (1) ، تنهنڪري ڪل وقت واري پيچيدگي آهي اي (اين).

خلائي پيچيدگي

اسان هڪ اضافي هش ٽيبل ورتو ، تنهنڪري اسان جي جاءِ جي پيچيدگي آهي اي (اين).