对于第一次发的解法,那属实是一节高数课想出的比较数学的解法,现在另一位同学http://t.csdn.cn/zSsty提出的思路,我就回想起在阅读《算法竞赛入门经典》这本书时的点拨,这是个通用的解法切不那么数学。
在几何上,我们可以将六边形视作如图所示
这样的话就变成了直角坐标系,并且如果位于中间点,那么只能移动到六个橙点位置
那么根据画图最短就有如下两种情况(四个橙点)
注意边长和对角线都视作1长度
那么对于验证,开头链接解法的距离(-5,3)->(2,1)=7正确,(0,0)->(2,1)=3正确
那么对于左上右下( \ )情况又有两种
对于斜线➕水平直线的就等于水平距离
对于斜线➕竖直直线的就等于垂直距离
这就是最大的水平距离或者垂直距离
那么对于左下右上( / )情况最短距离不就是两点之间距离吗
因为是临时写稿,所以代码不作演示