0
与えられるR(行)、C(coloumns)、Nのcordinates(x、y)は、X < = R & & Y < = C、 我々はそのラインを見つける必要を含む行を検索します相互に等距離の最大点を含む。究極の目標は、その行のそれらの点の数を見つけることです。最大互いに等距離点
相互に等距離であることは、その線上のすべての点が隣接点から等距離にあることを意味します。 例:(1,1)、(3,3)、(5,5)、(7,7)、(9,9)。
非相互に等間隔の点を含む線を考慮する必要はありません。 例:(1,1)、(2,2)、(4,4)。
N^3に近い方法で解決しようとしましたが、すべてのテストケースを通過できませんでした。
私のアプローチ:
For every pair of two points i and j:
Consider another point k:
if(slope(i,j) == slope(i,k))
They are at same line, map these points with the calculated slope.
Set ans = 0.
Then for every slope in the map,
sort all the mapped points and
check whether they are
mutually equidistant.
If they are mutually equidistant,
and their count is greater than ans,
Set ans=count.
Output = ans
は、より良い方法はありますか?
しかし、この解決策はN^3の順です。私はすでに働いているN^3を持っています。 私は質問自体に言及しました。 – Buddha
一般的にN^2です。最悪の場合、すべての点が1行にあるときはN^3です。これは、1つの線の向き(i
Ante
しかし、これには問題があります。相互に等距離でない点を含む線を考慮する必要はありません。例:(1,1)、(2,2)、(3,3)、(4,4)、(6,6)。 あなたの擬似コードによれば、これらはans = 4(同じ行で最大4点)とみなされます。この場合、答えは0になるはずです。 – Buddha