最近/最远曼哈顿距离

本文都是以二维举例的,实际上变成更多维也是差不多的情况啦,只是每个点的状态多了一些而已。

最远曼哈顿距离:

假设有两个点A(xi,yi),B(xj,yj)

则两点之间的曼哈顿距离为 |xi-xj|+|yi-yj|,根据两个点之间的位置关系,可以分为四种情况:(把相同点的坐标放在一起了)

即 (xi+yi)+(-xj-yj), (-xi+yi)+(xj-yj), (xi-yi)+(-xj+yj),(-xi-yi)+(xj+yj)

显然|xi-xj|=max(xi-xj,xj-xi),|yi-yj|=max(yi-yj,yj-yi);

|xi-xj|+|yi-yj|=max(xi-xj,xj-xi)+max(yi-yj,yj-yi)=max((xi-xj)+(yi-yj),(xi-xj)+(yj-yi),(xj-xi)+(yi-yj),(xj-xi)+(yj-yi))

=max( (xi+yi)+(-xj-yj), (-xi+yi)+(xj-yj), (xi-yi)+(-xj+yj),(-xi-yi)+(xj+yj) )

所以两个点之间的曼哈顿距离=max( (xi+yi)+(-xj-yj), (-xi+yi)+(xj-yj), (xi-yi)+(-xj+yj),(-xi-yi)+(xj+yj) ),4种情况取最大的一个就是了。

假设我们现在要求点A(xi,yi)到很多其他点的最远曼哈顿距离,就是max( (xi+yi)+max{-xj-yj},(-xi+yi)+max{xj-yj}, (xi-yi)+max

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值