解法一

按照数组顺序访问点,因此只需要考虑两点之间的最短走法。
对角线走法相当于同时在水平和垂直方向上各走一个单位,优先考虑,因此两点间移动所需要的最短步数等于在水平和垂直方向上距离的较大值。

  1. class Solution {
  2. public int minTimeToVisitAllPoints(int[][] points) {
  3. int ans = 0;
  4. for (int i = 0; i < points.length-1; ++i) {
  5. ans += Math.max(
  6. Math.abs(points[i][0] - points[i + 1][0]),
  7. Math.abs(points[i][1] - points[i + 1][1])
  8. );
  9. }
  10. return ans;
  11. }
  12. }