Min Steps in Infinite Grid

You are in an infinite 2D grid where you can move in any of the 8 directions :

(x,y) to (x+1, y), (x - 1, y), (x, y+1), (x, y-1), (x-1, y-1), (x+1,y+1), (x-1,y+1), (x+1,y-1)

You are given a sequence of points and **the order in which you need to cover the points**. Give the minimum number of steps in which you can achieve it. You start from the first point.

**Example :**

Input : [(0, 0), (1, 1), (1, 2)] Output : 2

It takes 1 step to move from (0, 0) to (1, 1). It takes one more step to move from (1, 1) to (1, 2).

public class Solution {

public int coverPoints(ArrayList<Integer> X, ArrayList<Integer> Y){

int points = X.size();

int totalsteps = 0;

for(int i=0; i<points-1; i++){

totalsteps += stepsReq(X.get(i), Y.get(i), X.get(i+1), Y.get(i+1));

}

return totalsteps;

}

public int stepsReq(int x1, int y1, int x2, int y2){

int xSteps = Math.abs(x2-x1);

int ySteps = Math.abs(y2-y1);

return xSteps >= ySteps ? xSteps : ySteps;

}

}

All Posts

×

Almost done…

We just sent you an email. **Please click the link in the email to confirm your subscription!**

OKSubscriptions powered by Strikingly