调试中...
调试中...
题目描述
题目描述
题解
题解
提交记录
提交记录
代码
代码
测试用例
测试用例
测试结果
测试结果
困难
相关标签
相关企业
提示

给定两条线段(表示为起点start = {X1, Y1}和终点end = {X2, Y2}),如果它们有交点,请计算其交点,没有交点则返回空值。

要求浮点型误差不超过10^-6。若有多个交点(线段重叠)则返回 X 值最小的点,X 坐标相同则返回 Y 值最小的点。

 

示例 1:

输入:
line1 = {0, 0}, {1, 0}
line2 = {1, 1}, {0, -1}
输出: {0.5, 0}

示例 2:

输入:
line1 = {0, 0}, {3, 3}
line2 = {1, 1}, {2, 2}
输出: {1, 1}

示例 3:

输入:
line1 = {0, 0}, {1, 1}
line2 = {1, 0}, {2, 1}
输出: {},两条线段没有交点

 

提示:

  • 坐标绝对值不会超过 2^7
  • 输入的坐标均是有效的二维坐标
通过次数
12.1K
提交次数
27.5K
通过率
44.1%

相关标签

相关企业

提示 1
所有的线都会相交吗?什么决定两条线是否相交?

提示 2
无限长的线几乎总会相交,除非它们相互平行。平行线也仍然有可能“相交”——如果它们是同一条线。这对线段来说意味着什么?

提示 3
我们怎样才能找到两条线的交点。如果两条线相交,那么交点必须与它们的“无限”延伸处于同一点。这两条线之间是交点吗?

提示 4
仔细考虑如何处理线段具有相同斜率和与y轴相交的情况。

评论 (0)

《程序员面试金典(第 6 版)》独家授权
本书是原谷歌资深面试官的经验之作,帮助了许多想要加入脸书、苹果、谷歌等 IT 名企的求职者拿到 Dream offer。本专题的 100+ 编程面试题是在原书基础上精心挑选出来的,帮助你轻松应战 IT 名企技术面试。
© 2025 领扣网络(上海)有限公司
0 人在线
行 1,列 1
运行和提交代码需要登录
start1 =
[0,0]
end1 =
[0,1]
start2 =
[1,0]
end2 =
[1,1]
Source