C++后端面试|笔试基础(2):欧式距离 曼哈顿距离等

本文整理不全,整理了面试中问到的问题,没问到的留存以后整理;
其他请参考

1.欧式距离

在这里插入图片描述

2.曼哈顿距离

在曼哈顿街区要从一个十字路口开车到另一个十字路口,驾驶距离显然不是两点之前的直线距离。这个实际的驾驶距离就是"曼哈顿距离"。曼哈顿距离也称“城市街区距离”。

在这里插入图片描述
在这里插入图片描述

2.1 最小曼哈顿距离

最小曼哈顿距离是个经常考察到的点。

例题:一排树,1·····N,中间选取一棵树,使得该树到其他所有树的距离和最小

一般来说,上面这种问题就是最小曼哈顿距离。
最小曼哈顿距离有个"定理":
可以使曼哈顿距离取最小值的元素为中位数,不过可以统一选择排序之后的第n/2+1个元素,奇偶均如此

证明请移步文章

2.2 最小曼哈顿距离(高阶)

主要针对权重问题,每个点除了坐标外,还都附带一个权重w,求使∑wi∣xi−a∣最小的点a。
看看使距离最小的点在什么位置。在此我们直接考虑n个点确定的连续区间。假定给n个点已排序,给定点c满足xk≤c<xk+1xk​≤c<xk+1​我们求

所以针对带权曼哈顿距离,我们需要做的就是将n个点排序,然后累加权重直到左侧权重大于右侧权重停止,此时就是使距离最小的位置。特别地,当n个点的权重均为正,且和为1时,分界点就是累加之后权重之和超过0.5的位置,这个位置被称为带权中位数(详细定义请参考算法导论)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CoomCon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值