Maximum difference between two elements in an Array

08 Feb, 2022
Given an array arr[] of N integers, the task is to find the maximum difference between any two elements of the array.Examples:  
Input: arr[] = {2, 1, 5, 3} Output: 4 |5 – 1| = 4Input: arr[] = {-10, 4, -9, -5} Output: 14  
 
Approach: The maximum absolute difference in the array will always be the absolute difference between the minimum and the maximum element from the array.Below is the implementation of the above approach:
 
C++
Java
Python3
C#
PHP
Javascript
// C++ implementation of the approach#include <bits/stdc++.h>using namespace std; // Function to return the maximum// absolute difference between// any two elements of the arrayint maxAbsDiff(int arr[], int n){     // To store the minimum and the maximum    // elements from the array    int minEle = arr[0];    int maxEle = arr[0];    for (int i = 1; i < n; i++) {        minEle = min(minEle, arr[i]);        maxEle = max(maxEle, arr[i]);    }     return (maxEle - minEle);} // Driver codeint main(){    int arr[] = { 2, 1, 5, 3 };    int n = sizeof(arr) / sizeof(arr[0]);    cout << maxAbsDiff(arr, n);     return 0;}
// Java implementation of the approachclass GFG {     // Function to return the maximum    // absolute difference between    // any two elements of the array    static int maxAbsDiff(int arr[], int n)    {         // To store the minimum and the maximum        // elements from the array        int minEle = arr[0];        int maxEle = arr[0];        for (int i = 1; i < n; i++) {            minEle = Math.min(minEle, arr[i]);            maxEle = Math.max(maxEle, arr[i]);        }         return (maxEle - minEle);    }     // Driver code    public static void main(String[] args)    {        int[] arr = { 2, 1, 5, 3 };        int n = arr.length;        System.out.print(maxAbsDiff(arr, n));    }}
# Python3 implementation of the approach # Function to return the maximum# absolute difference between# any two elements of the arraydef maxAbsDiff(arr, n):     # To store the minimum and the maximum    # elements from the array    minEle = arr[0]    maxEle = arr[0]    for i in range(1, n):        minEle = min(minEle, arr[i])        maxEle = max(maxEle, arr[i])     return (maxEle - minEle) # Driver codearr = [2, 1, 5, 3]n = len(arr)print(maxAbsDiff(arr, n)) # This code is contributed# by mohit kumar
// C# implementation of the approachusing System; class GFG{     // Function to return the maximum    // absolute difference between    // any two elements of the array    static int maxAbsDiff(int []arr, int n)    {         // To store the minimum and the maximum        // elements from the array        int minEle = arr[0];        int maxEle = arr[0];        for (int i = 1; i < n; i++)        {            minEle = Math.Min(minEle, arr[i]);            maxEle = Math.Max(maxEle, arr[i]);        }         return (maxEle - minEle);    }     // Driver code    public static void Main()    {        int[] arr = { 2, 1, 5, 3 };        int n = arr.Length;                 Console.WriteLine(maxAbsDiff(arr, n));    }} // This code is contributed by Ryuga
<?php// PHP implementation of the approach // Function to return the maximum// absolute difference between// any two elements of the arrayfunction maxAbsDiff($arr, $n){     // To store the minimum and the maximum    // elements from the array    $minEle = $arr[0];    $maxEle = $arr[0];    for ($i = 1; $i < $n; $i++)    {        $minEle = min($minEle, $arr[$i]);        $maxEle = max($maxEle, $arr[$i]);    }     return ($maxEle - $minEle);} // Driver code$arr = array(2, 1, 5, 3);$n = sizeof($arr);echo maxAbsDiff($arr, $n); // This code is contributed// by Akanksha Rai
<script> // JavaScript implementation of the approach // Function to return the maximum// absolute difference between// any two elements of the arrayfunction maxAbsDiff(arr, n){     // To store the minimum and the maximum    // elements from the array    let minEle = arr[0];    let maxEle = arr[0];    for (let i = 1; i < n; i++) {        minEle = Math.min(minEle, arr[i]);        maxEle = Math.max(maxEle, arr[i]);    }     return (maxEle - minEle);} // Driver code    let arr = [ 2, 1, 5, 3 ];    let n = arr.length;    document.write(maxAbsDiff(arr, n)); </script>
4
Time Complexity : O(n)
Auxiliary Space : O(1)
Another Approach ( Using STL) : The maximum absolute difference in the array will always be the absolute difference between the minimum and the maximum element from the array.Below is the implementation of the above approach:
Below is the implementation of the above approach:
C++
Java
Python3
C#
Javascript
// C++ implementation of the approach#include <bits/stdc++.h>using namespace std;// Function to return the maximum// absolute difference between// any two elements of the arrayint maxAbsDiff(int arr[], int n){     // To find the minimum and the maximum element    // using stl    int maxele = *max_element(arr, arr + n);    int minele = *min_element(arr, arr + n);    // make variable to store answer    int ans = abs(maxele - minele);    return ans;}// Driver codeint main(){    int arr[] = { -10, 4, -9, -5 };    int n = sizeof(arr) / sizeof(arr[0]);    cout << maxAbsDiff(arr, n);     return 0;}
//Java program for the above approachimport java.util.Arrays;class GFG {   // Function to return the maximum  // absolute difference between  // any two elements of the array  public static int maxAbsDiff(int arr[], int n)  {     // To find the minimum and the maximum element    // using stl    int maxele = Arrays.stream(arr).max().getAsInt();    int minele = Arrays.stream(arr).min().getAsInt();     // make variable to store answer    int ans = Math.abs(maxele - minele);    return ans;  }   // Driver code  public static void main (String[] args)  {    int arr[] = { -10, 4, -9, -5 };    int n = arr.length;    System.out.print(maxAbsDiff(arr, n));  }} // This code is contributed by Shubham Singh
# Python program for the above approach # Function to return the maximum# absolute difference between# any two elements of the arraydef maxAbsDiff(arr, n):         # To find the minimum and the maximum element    maxele = max(arr)    minele = min(arr)         # make variable to store answer    ans = abs(maxele - minele)    return ans # Driver codearr = [ -10, 4, -9, -5 ]n = len(arr)print(maxAbsDiff(arr, n)) # This code is contributed by Shubham Singh
// C# program for the above approachusing System;using System.Linq; public class GFG{   // Function to return the maximum  // absolute difference between  // any two elements of the array  public static int maxAbsDiff(int[] arr, int n)  {     // To find the minimum and the maximum element    int maxele = arr.Max();    int minele = arr.Min();     // make variable to store answer    int ans = Math.Abs(maxele - minele);    return ans;  }   // Driver code  static public void Main ()  {    int[] arr = { -10, 4, -9, -5 };    int n = arr.Length;    Console.Write(maxAbsDiff(arr, n));  }} // This code is contributed by Shubham Singh
<script>// Javascript program for the above approach // Function to return the maximum// absolute difference between// any two elements of the arrayfunction maxAbsDiff(arr, n){     // To find the minimum and the maximum element    var maxele = Math.max(...arr);    var minele = Math.min(...arr);     // make variable to store answer    var ans = Math.abs(maxele - minele);    return ans;} // Driver codevar arr = [ -10, 4, -9, -5 ];var n = arr.Length;document.write(maxAbsDiff(arr, n)); // This code is contributed by Shubham Singh</script>
14
Time Complexity : O(n)
ankthon
mohit kumar 29
Akanksha_Rai
rishavmahato348
sauarbhyadav
SHUBHAMSINGH10
school-programming
Arrays
C++
Java
Mathematical
Arrays
Mathematical
Java
CPP
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Multidimensional Arrays in Java
Given an array A[] and a number x, check for pair in A[] with sum as x (aka Two Sum)
Introduction to Arrays
K'th Smallest/Largest Element in Unsorted Array | Set 1
Subset Sum Problem | DP-25
Vector in C++ STL
Map in C++ Standard Template Library (STL)
Initialize a vector in C++ (7 different ways)
std::sort() in C++ STL
Bitwise Operators in C/C++