目录
0 问题描述
1 数据准备
2 问题分析
3 求解优化
步骤一:构建 “斜率键” 并统计点的数量(核心步骤)
步骤二:找出最多的点数(最终结果)
0 问题描述
“平面上最多的点数” 问题通常是指在一个二维平面中给定了若干个点的坐标(例如以 (x,y)
的形式表示),要求找出在同一条直线上点的数量最多是多少。也就是需要遍历所有可能的直线(通过任意两点可以确定一条直线),统计每条直线上包含的点的个数,然后找出点数最多的那种情况所对应的点数。
1 数据准备
CREATE TABLE points (
id INT ,
x INT,
y INT
);
INSERT INTO points VALUES
(1, 1, 1),
(2, 2, 2),
(3, 3, 3),
(4, 4, 4),
(5, 1, 2),
(6, 2, 3),
(7, 3, 4),
(8, 5, 5),
(9, 6, 6);
2 问题分析
步骤一:计算两点间的斜率相关值
- 首先使用分析函数计算每个点与其他点组合的斜率相关值(这里采用
(y2 - y1) * 1000+(x2 -