把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

曼哈顿距离(Manhattan Distance )详解

曼哈顿距离——两点在南北方向上的距离加上在东西方向上的距离,即d(i,j)=|xi-xj|+|yi-yj|。对于一个具有正南正北、正东正西方向规则布局的城镇街道,从一点到达另一点的距离正是在南北方向上旅行的距离加上在东西方向上旅行的距离,因此,曼哈顿距离又称为出租车距离。
——引用自百度

简析

  • 就曼哈顿距离的概念来说,只能上、下、左、右四个方向进行移动,而且两点之间的曼哈顿距离是两点之间的最短距离(在只能向上、下、左、右四个方向进行移动的前提下)。为什么呢?假设从一点到达另一点(只能向上、下、左、右四个方向进行移动,下同),要使路程最短,就只能每一步都有用(使之与另一点的南北距离或东西距离缩短),所以我们最先想到的是图中的红线,它的长度就是两点之间的曼哈顿距离。而红线可以通过平移转化为蓝线、黄线等线,它们的长度都与红线相等。(再解释不下去了,体会一下)
  • 那么我们可以利用曼哈顿距离解决什么问题呢?曼哈顿距离可以代替一个广搜,不过这个广搜是有条件限制的:
    ①只能上、下、左、右四个方向进行移动(很多迷宫问题其实都有这个特性)
    ②只求两点之间最短路径的长度,不求路径过程
    为了让大家更清晰地体会,举一例题:最少联通代价
    此题本是要用深搜+广搜解决,但巧法可只用一个小深搜+曼哈顿距离思想
posted @   Starlight_Glimmer  阅读(209)  评论(0编辑  收藏  举报  
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
浏览器标题切换
浏览器标题切换end
点击右上角即可分享
微信分享提示