I think you guys may be overthinking the problem, or else I'm misinterpreting the OP. It seems the definition of 'perfect circle' requires the array contain all points within the boundary of the circle. In order for this to even be possible, me must be talking about a discrete plane. I will assume we are talking about a Cartesian plane (x and y axes). In that case, for each possible radius (up to some maximum), we can precalculate the number of points contained within that circle. Thus, we can simply examine the size of the array and do a lookup comparison to eliminate many arrays. If the number matches, then we already know what radius we're looking for and can work from there. Off the top of my head, I'd say we could figure out the x and y maxes and mins to identify the origin and then and then see if every possible point within the circle of that location and radius is contained within the array. It should be O(n), where n is the size of the array.