Suppose we are given two sequences A and B of n integers pos
Suppose we are given two sequences A and B of n integers, possibly contain- ing duplicates, in the range from 1 to 2n. Describe a linear-time algorithm for determining if A and B contain the same set of elements (possibly in different orders).
Solution
 We can use count array to check whether they have same set of numbers in linear time
boolean isSameSet(int a[], int b[], int n){
   
    1. creating a count array of size 2n and initializing with zero
        int count[2n] = {0}
   2. traverse A and add count of each numbers in count array
        for i=1 to n do
            count[A[i]] = count[A[i]] + 1
   3. traverse B and check count of current number from B in count array
        if count is zero then they do not have same set of numbers
        else decrease count by 1 and process other element
       for j=1 to n do
            if count[B[j]] == 0
                return false
            else
                count[B[j]] =count[B[j]] -1
   4. Now, all elements of count array should be zero, if at least one of element is not zero, then they do
        not have same set
        for k=1 to 2n
            if count[k] != 0
                return fasle
   5. We reach here means they contaisn same set of numbers
        return true
 }

