平面上N个点求斜率最大的两个点

  平面上N个点求斜率最大两个点

1.根据X将N个点排序

2.最大的斜率为max(p[i], p[i+1])

可以证明如果有ABC三个点则AB与BC的斜率一个大于AC另一个则小于AC, k3 = (c - b)/(c - a)k2 + (b -a)/(c-a)k1;

通过反正法可以证明k3在k1和k2之间

p[i], p[i + k]斜率在(p[i ], p[i + 1]) 和(p[i + 1] , p[i + k])之间,然后递归推出最大的斜率为max(p[i], p[i + 1]);

原文地址:https://www.cnblogs.com/chonghui1001/p/2189650.html