Open In App

Calculate the Manhattan Distance between two cells of given 2D array

Last Updated : 06 Jan, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report

Given a 2D array of size M * N and two points in the form (X1, Y1) and (X2 , Y2) where X1 and X2 represents the rows and Y1 and Y2 represents the column. The task is to calculate the Manhattan distance between the given points. 

Examples:

Input: M = 5, N = 5, X1 = 1, Y1 = 2, X2 = 3, Y2 = 3
Output: 3
Explanation: As per the definition, the Manhattan the distance is same as sum of the absolute difference of the coordinates.

Input: M = 5, N = 5, X1 = 4, Y1 = 2, X2 = 4, Y2 = 2
Output: 0

 

Approach: The approach is based on mathematical observation. The Manhattan distance between two points is the sum of absolute difference of the coordinates.

Manhattan distance = |X1 - X2| + |Y1 - Y2|

Below is the implementation of the above approach.

C++
// C++ code to implement above approach
#include <bits/stdc++.h>
using namespace std;

// Code to calculate Manhattan distance
int manhattanDist(int M, int N, int X1, 
                  int Y1, int X2, int Y2)
{
    int dist = abs(X2 - X1) + abs(Y2 - Y1);
    return dist;
}

// Driver code
int main()
{
    // Define size of 2-D array
    int M = 5, N = 5;

    // First point
    int X1 = 1, Y1 = 2;

    // Second point
    int X2 = 3, Y2 = 3;

    cout << manhattanDist(M, N, X1, Y1, X2, Y2);
    return 0;
}
Java
// java code to implement above approach

class GFG
{

  // Code to calculate Manhattan distance
  static int manhattanDist(int M, int N, int X1,
                           int Y1, int X2, int Y2) {
    int dist = Math.abs(X2 - X1) + Math.abs(Y2 - Y1);
    return dist;
  }

  // Driver code
  public static void main(String args[]) 
  {

    // Define size of 2-D array
    int M = 5, N = 5;

    // First point
    int X1 = 1, Y1 = 2;

    // Second point
    int X2 = 3, Y2 = 3;

    System.out.println(manhattanDist(M, N, X1, Y1, X2, Y2));
  }
}

// This code is contributed by gfgking.
Python3
# Python code for the above approach
import math as Math

# Code to calculate Manhattan distance
def manhattanDist(M, N, X1, Y1, X2, Y2):
    dist = Math.fabs(X2 - X1) + Math.fabs(Y2 - Y1)
    return (int)(dist)

# Driver code

# Define size of 2-D array
M = 5
N = 5

# First point
X1 = 1
Y1 = 2

# Second point
X2 = 3
Y2 = 3

print(manhattanDist(M, N, X1, Y1, X2, Y2))

# This code is contributed by Saurabh Jaiswal
C#
// C# code to implement above approach
using System;
class GFG {

  // Code to calculate Manhattan distance
  static int manhattanDist(int M, int N, int X1, int Y1,
                           int X2, int Y2)
  {
    int dist = Math.Abs(X2 - X1) + Math.Abs(Y2 - Y1);
    return dist;
  }

  // Driver code
  public static void Main()
  {

    // Define size of 2-D array
    int M = 5, N = 5;

    // First point
    int X1 = 1, Y1 = 2;

    // Second point
    int X2 = 3, Y2 = 3;

    Console.WriteLine(
      manhattanDist(M, N, X1, Y1, X2, Y2));
  }
}

// This code is contributed by ukasp.
JavaScript
 <script>
        // JavaScript code for the above approach

        // Code to calculate Manhattan distance
        function manhattanDist(M, N, X1,
            Y1, X2, Y2) {
            let dist = Math.abs(X2 - X1) + Math.abs(Y2 - Y1);
            return dist;
        }

        // Driver code

        // Define size of 2-D array
        let M = 5, N = 5;

        // First point
        let X1 = 1, Y1 = 2;

        // Second point
        let X2 = 3, Y2 = 3;

        document.write(manhattanDist(M, N, X1, Y1, X2, Y2));

  // This code is contributed by Potta Lokesh
    </script>

 
 


Output
3

Time Complexity: O(1)
Auxiliary Space: O(1)


 


Next Article
Article Tags :
Practice Tags :

Similar Reads