149. Max Points on a Line [Hard]
苏微oa第三题,经典的图形hard题
这题思路上没有特别难但实现很tricky:
1. 斜率的表示
斜率不能直接相除得到小数,会损失精度
选择用(dx,dy)的点对表示,且点对中的值需要约掉他们的最大公约数,计算最大公约数又要用辗转相除法的代码
2. 特殊情况的共线
三种:
(1)重合的点
a和b重合,则一定共线,每一条经过某一点的线,其上的共线点都应该加上所有与它重合的点。
(2)水平方向共线(dy == 0) 或 垂直方向共线(dx == 0)
...
原创
2021-07-30 02:04:03 ·
190 阅读 ·
0 评论