#include <iostream>
#include <map>
using namespace std;
// Add any helper functions(if needed) above.
int* remove_dup(int A[], int sz, int * outputSize)
{ /* Alocate the memory of Output array of maximum size n.
Fill the new array with unique elements, which have duplicates entries in input array
Size of Output array will be less than n. */
int *output = NULL;
// Add your code below this line. Do not modify any other code.
map<int, int> mapOccurrences;
int j;
for(j=0; j<sz; j++)
{
mapOccurrences[A[j]]++;
}
*outputSize=mapOccurrences.size();
output = new int[*outputSize];
int i=0;
for(map<int,int>::iterator it = mapOccurrences.begin(); it != mapOccurrences.end(); it++, i++)
{
output[i] = (*it).first;
}
// Add your code above this line. Do not modify any other code.
return output;
}
int main()
{
// your code goes here
int someArry[] = {1,2,4,4,5,6,2,1};
int outputSize;
int* finalArray = remove_dup(someArry, 8, &outputSize);
int i;
for (i=0; i< outputSize; i++)
{
cout << finalArray[i] << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIEFkZCBhbnkgaGVscGVyIGZ1bmN0aW9ucyhpZiBuZWVkZWQpIGFib3ZlLgppbnQqIHJlbW92ZV9kdXAoaW50IEFbXSwgaW50IHN6LCBpbnQgKiBvdXRwdXRTaXplKQp7ICAgIC8qIEFsb2NhdGUgdGhlIG1lbW9yeSBvZiBPdXRwdXQgYXJyYXkgb2YgbWF4aW11bSBzaXplIG4uIAogICAgRmlsbCB0aGUgbmV3IGFycmF5IHdpdGggdW5pcXVlIGVsZW1lbnRzLCB3aGljaCBoYXZlIGR1cGxpY2F0ZXMgZW50cmllcyBpbiBpbnB1dCBhcnJheSAKICAgIFNpemUgb2YgT3V0cHV0IGFycmF5IHdpbGwgYmUgbGVzcyB0aGFuIG4uICovCiAgICBpbnQgKm91dHB1dCA9IE5VTEw7CiAgICAvLyBBZGQgeW91ciBjb2RlIGJlbG93IHRoaXMgbGluZS4gRG8gbm90IG1vZGlmeSBhbnkgb3RoZXIgY29kZS4KICAgIAogICAgbWFwPGludCwgaW50PiBtYXBPY2N1cnJlbmNlczsKICAgIAogICAgaW50IGo7CiAgICBmb3Ioaj0wOyBqPHN6OyBqKyspCiAgICB7CiAgICAgICAgbWFwT2NjdXJyZW5jZXNbQVtqXV0rKzsKICAgIH0KICAgIAogICAgKm91dHB1dFNpemU9bWFwT2NjdXJyZW5jZXMuc2l6ZSgpOwogICAgb3V0cHV0ID0gbmV3IGludFsqb3V0cHV0U2l6ZV07CiAgICAKICAgIGludCBpPTA7CiAgICBmb3IobWFwPGludCxpbnQ+OjppdGVyYXRvciBpdCA9IG1hcE9jY3VycmVuY2VzLmJlZ2luKCk7IGl0ICE9IG1hcE9jY3VycmVuY2VzLmVuZCgpOyBpdCsrLCBpKyspCiAgICB7CiAgICAgICAgb3V0cHV0W2ldID0gKCppdCkuZmlyc3Q7CiAgICB9CiAgICAKICAgIC8vIEFkZCB5b3VyIGNvZGUgYWJvdmUgdGhpcyBsaW5lLiBEbyBub3QgbW9kaWZ5IGFueSBvdGhlciBjb2RlLgogICAgcmV0dXJuIG91dHB1dDsKICAgIAp9CgoKaW50IG1haW4oKSAKewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJCglpbnQgc29tZUFycnlbXSA9IHsxLDIsNCw0LDUsNiwyLDF9OwoJCglpbnQgb3V0cHV0U2l6ZTsKCWludCogZmluYWxBcnJheSA9IHJlbW92ZV9kdXAoc29tZUFycnksIDgsICZvdXRwdXRTaXplKTsKCQoJaW50IGk7Cglmb3IgKGk9MDsgaTwgb3V0cHV0U2l6ZTsgaSsrKQoJewoJCWNvdXQgPDwgZmluYWxBcnJheVtpXSA8PCBlbmRsOwoJfQoJCglyZXR1cm4gMDsKfQ==