Bootstrap

LeetCode149——直线上最多的点数

我的LeetCode代码仓:https://github.com/617076674/LeetCode

原题链接:https://leetcode-cn.com/problems/max-points-on-a-line/description/

题目描述:

知识点:哈希表、欧几里得最大公约数算法

思路:用分数形式存储直线的斜率,切勿忘记斜率不存在的情况

(1)新建一个长度为点的数量的数组count,用以保存对于每一个点i其斜率存在的情况下的直线的经过的最多的点数。

(2)首先设置一个外循环依次遍历所有的点,外循环变量记为i。每一次循环都新建一个哈希表用以记录与i点在同一条直线上的直线的斜率以及该斜率直线下点的个数再新建一个变量same,用以记录与点i在坐标平面上位置相同的点j的数量。还得新建一个变量size,用以记录经过点i且垂直于x轴(即斜率不存在)的直线的情况。

(3)再设置一个内循环依次遍历所有的点,内循环变量记为j。

(4)如果遍历到的点满足i 

;