function uniquify(uint[] input) public pure returns(uint[] ret) {
if(input.length < 2) {
return input;
}
bool[] memory duplicates = new bool[](input.length);
uint256 duplicateCounter = 0;
uint counte r = 0;
uint[] memory unique = new uint[](input.length);
unique[counter] = input[counter];
counter++;
for(uint i = 0; i < input.length; i++) {
for(uint j = i+1; j < input.length; j++) {
if(input[i]==input[j] && !duplicates[j]) {
duplicates[j] = true;
duplicateCounter++;
}
}
// you already know here i+1 is a duplicate or not
if(i+1<input.length && !duplicates[i+1]) {
unique[counter] = input[i+1];
counter++;
}
}
uint[] memory unique2 = new uint[](counter);
for(i=0; i < counter; i++) {
unique2[i] = unique[i];
}
ret = unique2;
}
Last active
June 13, 2018 14:54
-
-
Save seresistvanandras/e1ccd7cebcc87e5d8d86c9d7b3a24611 to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment