下面是我针对oj问题的python代码:“一行上的最大点”,我在本地用很多测试点对它进行了测试,看起来还可以,但是oj回答“编译错误”。你知道吗
我错过什么了吗?你知道吗
import operator
class Solution:
# @param points, a list of Points
# @return an integer
def maxPoints(self, points):
pointset = set(points)
if len(pointset) < 3:
return len(points)
else:
pointdict ={pkey:points.count(pkey) for pkey in pointset}
count = 0
while len(pointset) > 1:
point1 = pointset.pop()
point2set = pointset.copy()
while point2set:
point2 = point2set.pop()
point3set = point2set.copy()
lineset = {point1, point2}
if point3set:
for point3 in point3set:
if (point1.x-point2.x)*(point2.y-point3.y) == (point2.x-point3.x)*(point1.y-point2.y) :
lineset.add(point3)
point2set.remove(point3)
linecount = reduce(operator.add, [pointdict[p] for p in lineset])
if linecount > count:
count = linecount
return count
目前没有回答
相关问题 更多 >
编程相关推荐