Skip to content

编码面试的几何备忘单

原文:https://www.techinterviewhandbook.org/algorithms/geometry/

简介

几何学是数学的一个分支,它研究与距离、形状、大小和图形的相对位置有关的空间性质。大多数计算机科学课程都不教授高等几何(如 3D 几何),所以你可以预期你只会被问到 2D 几何。

在算法面试中,几何通常不是问题的焦点(毕竟你不会被评估数学)。在这个问题中,你通常必须使用其他算法和/或数据结构。

拐角情况

  • 零值。这总会让人们。

技巧

两点之间的距离

当比较两点之间的时,使用 dx 2 + dy 2 就足够了。没有必要对该值求平方根。例子: K 个离原点最近的点

重叠圆圈

要找出两个圆是否重叠,请检查两个圆的圆心之间的距离是否小于它们的半径之和。

重叠矩形

如果下列条件成立,则两个矩形重叠:

overlap = rect_a.left < rect_b.right and \
 rect_a.right > rect_b.left and \ rect_a.top > rect_b.bottom and \ rect_a.bottom < rect_b.top 

这里有一个很好的可视化。例子:矩形重叠

样题

  • 你有一个上面有许多矩形的平面,找出有多少个矩形相交。
  • 您会使用哪种数据结构来查询 2D 平面上一个集合的 k 个最近点?
  • 给定许多点,找出最接近原点的 k 个点。
  • 你如何三角化一个多边形?

基本问题

如果你在学习这个话题,这些是需要练习的基本问题。

推荐练习题

这些是在你为题目学习并练习了基本问题后推荐练习的问题。

推荐课程

AlgoMonsterT3】

AlgoMonster 旨在帮助你在最短的时间内通过技术面试。由谷歌工程师开发的 AlgoMonster 使用数据驱动的方法来教你最有用的关键问题模式,并有内容帮助你快速修改基本的数据结构和算法。最重要的是,AlgoMonster 不是基于订阅的——支付一次性费用,就可以获得终身访问今天加入七折优惠→

寻找编码面试:编码问题的模式

设计大师的这门课程扩展了推荐练习题中的问题,但从问题模式的角度来进行练习,这是一种我也同意的学习方法,我个人也使用这种方法来更好地编写面试代码。本课程允许你用 Java、Python、C++、JavaScript 来练习选定的问题,并提供这些语言的示例解决方案以及一步一步的可视化。学习和理解模式,而不是背答案! 现在获得终身使用权→

掌握编码面试:数据结构+算法

这本 Udemy 畅销书是评分最高的面试准备课程之一(4.6 星,21.5k 评分,135k 学生),包含了价值 19 个小时的内容。像技术面试手册一样,它超越了编码面试,涵盖了简历,非技术面试,谈判。是一个全包!请注意,JavaScript 用于编码演示。 结账→



回到顶部