曼哈顿距离(Manhattan Distance )详解

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

简析

  • 就曼哈顿距离的概念来说,只能上、下、左、右四个方向进行移动,而且两点之间的曼哈顿距离是两点之间的最短距离(在只能向上、下、左、右四个方向进行移动的前提下)。为什么呢?假设从一点到达另一点(只能向上、下、左、右四个方向进行移动,下同),要使路程最短,就只能每一步都有用(使之与另一点的南北距离或东西距离缩短),所以我们最先想到的是图中的红线,它的长度就是两点之间的曼哈顿距离。而红线可以通过平移转化为蓝线、黄线等线,它们的长度都与红线相等。(再解释不下去了,体会一下)
  • 那么我们可以利用曼哈顿距离解决什么问题呢?曼哈顿距离可以代替一个广搜,不过这个广搜是有条件限制的:
    ①只能上、下、左、右四个方向进行移动(很多迷宫问题其实都有这个特性)
    ②只求两点之间最短路径的长度,不求路径过程
    为了让大家更清晰地体会,举一例题:最少联通代价
    此题本是要用深搜+广搜解决,但巧法可只用一个小深搜+曼哈顿距离思想
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值