美文网首页数据结构与算法
【穷举】Max Points on a Line平面上共线的点

【穷举】Max Points on a Line平面上共线的点

作者: 安琪拉的小迷妹 | 来源:发表于2018-06-12 16:21 被阅读0次

穷举的细节好多,之前做笔试题的时候,穷举题几乎没有全部AC的,好多细节考虑不到。。。。

题目:

找到平面上在一条直线上最多的点。如下例所示:

解题:

思路是这样的:从点1开始遍历,for i in range(len(point)-1),和for j in range(i+1,len(point)),计算point[i]和point[j]的斜率,为什么是i是到len-1呢,因为,最后一个数,后面没有了,倒数第二个数后面才有。注意:计算斜率的时候,要用分数的形式,求最大公约数然后化简,为啥呢,因为由于计算机精度的问题,小数会有误差。在遍历的时候注意,每次要把dic给清空,提取每次dic中的最大值,这一点很重要,注意啦注意啦!!!开始的时候没想到,想了半天才想到要清空,要不然都累加起来了,四个平行点,会给数成4+3+2个。还有一点需要注意的是,有可能有重复值,重复值就在每次遍历i的时候,加1就行,因为是以i为单位遍历的,重复值是对i的重复,直接加上面就行了。

对了还要注意一下,这个输入形式,是以class形式输入的

相关文章

网友评论

    本文标题:【穷举】Max Points on a Line平面上共线的点

    本文链接:https://www.haomeiwen.com/subject/wwcreftx.html