※ [本文转录自 CSSE 看板 #1GnqICKG ]
作者: wangtrying (老王) 看板: CSSE
标题: [问题] 面试问到的问题...
时间: Tue Dec 11 22:34:50 2012
在 XY 平面上,
给n个点 Pi = (Xi, Yi), i = 1...n,
找出最多点共线时 这条线上面的点的个数
怎么解的漂亮啊?
小弟想得到的就是暴力法
每两个点算斜率 m
放到一个Dictionary的资料结构
key是m, value是出现次数...
所以 总共会计算 n(n-1)/2 次 m 值
然后再对Dictionary的value找最大值 就是解了
但是这样是O(n^2) 不知道大家有没有更好的做法?