I need to find duplicates by rounded coordinates and store the indices, then remove elements from the original array by these indices. How can I do this with O(n) ?
func removeDuplicate(from points: [Point]) -> [Point] {
var originalPoints: [Point] = points
let tempRoundedPoints: [Point] = roundingCoordinates(for: points)
guard tempRoundedPoints.count > 2 else { return originalPoints }
var removableIndexes: [Int] = []
for i in 0..<tempRoundedPoints.count - 2 {
for j in i + 1..<tempRoundedPoints.count - 1 {
if (tempRoundedPoints[i]?.lat == tempRoundedPoints[j]?.lat) && (tempRoundedPoints[i]?.lng == tempRoundedPoints[j]?.lng) {
removableIndexes.append(i)
break
}
}
}
removeWith(indexes: removableIndexes, from: &originalPoints)
return originalPoints
}