Advertisement

切比雪夫距离 ( Chebyshev Distance )

阅读量:

切比雪夫距离Chebyshev Distance

  • 前言
  • 一、简介
  • 二、自己的理解
  • 总结

前言

如今想要进入互联网大厂工作,并非易事。虽然我的专业方向是Android图形开发,并非专注于互联网领域。但也始终怀有进入大厂工作的梦想,在力扣平台我也开始了自己的刷题之旅。最近解决的第1226号题目让我印象深刻——相较于其他看似简单的题目而言, 这道题确实耗费了不少时间。做完后沾沾自喜的时候才发现, 其实已经有前辈总结出了一个公式——切比雪夫距离 ( Chebyshev Distance )


一、简介

啥是切比雪夫距离 ( Chebyshev Distance )呢?具体描述如下:

国王能够移动到相邻的8个方格中的任意一个。那么如何计算国王从格子(x₁,y₁)到格子(x₂,y₂)所需的最小步数?通过计算可以发现,最少步数总是等于坐标差的最大值,即max(|x₂−x₁|,|y₂−y₁|) 步。这一计算方法被称为切比雪夫距离。二维平面两点a(x₁,y₁)与b(x₂,y₂)间的切比雪夫距离为D_{Chebyshev}(a,b)=\max(|x_2 - x_1|, |y_2 - y_1|)

二、自己的理解

个人认为仅凭上面的介绍难以弄清其推导过程。接着进行了大量搜索。浏览了许多博客后终于弄懂了。随后绘制了一幅图。一清了之。

在这里插入图片描述

所以力扣1226题从各种if…else直接改成了max( | x2-x1 | , | y2-y1 | ) ,一行代码直接搞定。

总结

虽然有一些无用的知识存在时有遗忘的情况,切比雪夫距离虽然曾经学过却遗忘了具体内容,在学习的时候也曾不屑一顾地认为其实没什么实用价值;然而等到真正需要用到它的时候才发现确实实用性不强真是"书到用时方恨少"啊!

全部评论 (0)

还没有任何评论哟~