1266 訪問所有點的最小時間

2021-10-25 17:27:27 字數 548 閱讀 7065

對於平面上的兩個點 x = (x0, x1) 和 y = (y0, y1),設它們橫座標距離之差為 dx = |x0 - y0|,縱座標距離之差為 dy = |x1 - y1|,對於以下三種情況,我們可以分別計算出從 x 移動到 y 的最少次數:

dx < dy:沿對角線移動 dx 次,再豎直移動 dy - dx 次,總計 dx + (dy - dx) = dy 次;

dx == dy:沿對角線移動 dx 次;

dx > dy:沿對角線移動 dy 次,再水平移動 dx - dy 次,總計 dy + (dx - dy) = dx 次。

可以發現,對於任意一種情況,從 x 移動到 y 的最少次數為 dx 和 dy 中的較大值 max(dx, dy),這也被稱作 x 和 y 之間的 切比雪夫距離。

由於題目要求,需要按照陣列**現的順序來訪問這些點。因此我們遍歷整個陣列,對於陣列中的相鄰兩個點,計算出它們的切比雪夫距離,所有的距離之和即為答案

class

solution

return sum;

}}

1266 訪問所有點的最小時間

package com.leetcode.easy 1266.訪問所有點的最小時間 平面上有 n 個點,點的位置用整數座標表示 points i xi,yi 請你計算訪問所有這些點需要的最小時間 以秒為單位 你可以按照下面的規則在平面上移動 每一秒沿水平或者豎直方向移動乙個單位長度,或者跨過對角線 ...

1266 訪問所有點的最小時間(分析)

1.問題描述 平面上有 n 個點,點的位置用整數座標表示 points i xi,yi 請你計算訪問所有這些點需要的最小時間 以秒為單位 你可以按照下面的規則在平面上移動 每一秒沿水平或者豎直方向移動乙個單位長度,或者跨過對角線 可以看作在一秒內向水平和豎直方向各移動乙個單位長度 必須按照陣列 現的...

力扣 1266 訪問所有點的最小時間 C

平面上有 n 個點,點的位置用整數座標表示 points i xi,yi 請你計算訪問所有這些點需要的最小時間 以秒為單位 你可以按照下面的規則在平面上移動 每一秒沿水平或者豎直方向移動乙個單位長度,或者跨過對角線 可以看作在一秒內向水平和豎直方向各移動乙個單位長度 必須按照陣列 現的順序來訪問這些...