美文网首页
Leetcode612. 平面上的最近距离(中等)

Leetcode612. 平面上的最近距离(中等)

作者: kaka22 | 来源:发表于2020-07-12 23:28 被阅读0次

题目

表 point_2d 保存了所有点(多于 2 个点)的坐标 (x,y) ,这些点在平面上两两不重合。

写一个查询语句找到两点之间的最近距离,保留 2 位小数。

x y
-1 -1
0 0
-1 -2

最近距离在点 (-1,-1) 和(-1,2) 之间,距离为 1.00 。所以输出应该为:

shortest
1.00

注意:任意点之间的最远距离小于 10000 。

生成数据

CREATE TABLE point_2d(
X INT, 
Y INT);

INSERT INTO point_2d VALUE(-1,-1), (0,0), (-1,-2);

解答
两表连接 相同的点不连即可
求平方利用pow(,2) 求开方用sqrt()

SELECT *, SQRT(POW(P1.`x` - P2.`x`, 2) + POW(P1.`y` - P2.`y`, 2))
FROM point_2d AS P1
JOIN point_2d AS P2
ON p1.`x` <> p1.`x` OR p1.`y` <> p2.`y`

取出最小的距离即可

SELECT MIN(SQRT(POW(P1.`x` - P2.`x`, 2) + POW(P1.`y` - P2.`y`, 2))) AS shortest
FROM point_2d AS P1
JOIN point_2d AS P2
ON p1.`x` <> p1.`x` OR p1.`y` <> p2.`y`;

偏序关系可能更好

SELECT MIN(SQRT(POW(P1.`x` - P2.`x`, 2) + POW(P1.`y` - P2.`y`, 2))) AS shortest
FROM point_2d AS P1
JOIN point_2d AS P2
ON p1.`x` < p1.`x` OR p1.`y` < p2.`y`;

相关文章

  • Leetcode612. 平面上的最近距离(中等)

    题目 表 point_2d 保存了所有点(多于 2 个点)的坐标 (x,y) ,这些点在平面上两两不重合。 写一个...

  • 最近的距离

    你毕业那年,就是我回来的那年,也是我们走得最近的一年。 那时候,你在准备各种公务员考试,有一回,便是发了这么一张图...

  • 最近的距离

    最近的距离,却也是最远的距离。 我不相信“永远”。 奇怪的是,我会说“永远”。 那么,永远到底有多远呢? 假如可以...

  • 最近的距离

    By:纸糊团 暴风雨的黑夜里 波涛碰撞着黎明 人与鱼的相遇 ...

  • 最近的距离

    你在那一头 我在这一头 却, 不能抚摸着你 这情, 在黑夜里慢慢散开 跳动的心房 蔓延在绽放 心思与谁诉说 痴痴在...

  • 最近的距离

    "姑娘有心事?"书生抿嘴品茶问到。 少女:"公子与城东唐公子可是熟识?" 书生:"世交。" 少女:"那下次你与他一...

  • 最近的距离

    最遥远的距离,是思想的距离。 就像“你站在我左侧,却像隔着银河”。 最近的距离,也是思想的距离。 就像我在中国某小...

  • 最近的距离

    昨天晚上,你也终于抵达我所在的城市,可惜,我却没有到现场的票,也没疯狂到去接机,嗯,最近的距离,我啥也做不了,感觉...

  • 最近的距离

    世界上最近的距离是生与死。 我从峰顶跃下,从此长眠,就在那一瞬间,我从生跨到死。 多遥远的距离才能让他们这样的近?...

  • 最近的距离

    昨天晚上看朋友圈,刷到一条不常发圈的好友的信息,因为在外地支援疫情错过了女儿5岁的生日,看了下位置,惊讶到了,原来...

网友评论

      本文标题:Leetcode612. 平面上的最近距离(中等)

      本文链接:https://www.haomeiwen.com/subject/gccocktx.html