直线上最多的点数
Posted zhenjianyu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了直线上最多的点数相关的知识,希望对你有一定的参考价值。
给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。
function maxPoints(points) { if(points.length == 1){ return 1 } let number = 0 for(let i = 0;i < points.length-1;i++){ let item = points[i] for(let j = i+1;j < points.length;j++){ let jItem = points[j] let r,n,num = 0; if(jItem[0] == item[0]){ r = 0 for(let k = 0;k < points.length;k++){ let kItem = points[k] if(kItem[0] == item[0]){ num++ } } }else if(jItem[1] == item[1]){ for(let k = 0;k < points.length;k++){ let kItem = points[k] if(kItem[1] == item[1]){ num++ } } }else{ r = (jItem[1]-item[1]) / (jItem[0]-item[0]) n = ((jItem[1]+item[1]) - ((jItem[0]+item[0]) * r))/2 for(let k = 0;k < points.length;k++){ let kItem = points[k] if(kItem[1] == (kItem[0] * r + n)){ num++ } } } if(num > number){ number = num } } } return number }
以上是关于直线上最多的点数的主要内容,如果未能解决你的问题,请参考以下文章