Largest gap in an array

12 May, 2021
Given an unsorted array of length N, and we have to find the largest gap between any two elements of the array. In simple words, find max(|Ai-Aj|) where 1 ≤ i ≤ N and 1 ≤ j ≤ N.
Examples:  
Input : arr = {3, 10, 6, 7}
Output : 7
Explanation :
Here, we can see largest gap can be
found between 3 and 10 which is 7

Input : arr = {-3, -1, 6, 7, 0}
Output : 10
Explanation :
Here, we can see largest gap can be 
found between -3 and 7 which is 10 
Simple Approach: A simple solution is, we can use a naive approach. We will check the absolute difference of every pair in the array, and we will find the maximum value of it. So we will run two loops one is for i and one is for j complexity of this method is O(N^2)  
C++
C
Java
Python3
C#
PHP
Javascript
// A C++ program to find largest gap// between two elements in an array.#include<bits/stdc++.h>using namespace std; // function to solve the given problemint solve(int a[], int n){    int max1 = INT_MIN;    for (int i = 0; i < n; i++)    {        for (int j = 0; j < n; j++)        {            if (abs(a[i] - a[j]) > max1)            {                max1 = abs(a[i] - a[j]);            }        }    }    return max1;} // Driver Codeint main(){    int arr[] = { -1, 2, 3, -4, -10, 22 };    int size = sizeof(arr) / sizeof(arr[0]);    cout << "Largest gap is : "         << solve(arr, size);    return 0;} // This code is contributed// by Akanksha Rai
// A C program to find largest gap// between two elements in an array.#include <limits.h>#include <stdio.h>#include <stdlib.h> // function to solve the given problemint solve(int a[], int n){    int max1 = INT_MIN;    for (int i = 0; i < n; i++) {        for (int j = 0; j < n; j++) {            if (abs(a[i] - a[j]) > max1) {                max1 = abs(a[i] - a[j]);            }        }    }    return max1;} int main(){    int arr[] = { -1, 2, 3, -4, -10, 22 };    int size = sizeof(arr) / sizeof(arr[0]);    printf("Largest gap is : %d", solve(arr, size));    return 0;}
// A Java program to find// largest gap between// two elements in an array.import java .io.*; class GFG{ // function to solve// the given problemstatic int solve(int []a,                 int n){    int max1 = Integer.MIN_VALUE ;    for (int i = 0; i < n; i++)    {        for (int j = 0; j < n; j++)        {            if (Math.abs(a[i] -                         a[j]) > max1)            {                max1 = Math.abs(a[i] -                                a[j]);            }        }    }    return max1;} // Driver Codestatic public void main (String[] args){    int []arr = {-1, 2, 3,                 -4, -10, 22};    int size = arr.length;    System.out.println("Largest gap is : " +                        solve(arr, size));}} // This code is contributed// by anuj_67.
# A Python 3 program to find largest gap# between two elements in an array.import sys # function to solve the given problemdef solve(a, n):    max1 = -sys.maxsize - 1    for i in range(0, n, 1):        for j in range(0, n, 1):            if (abs(a[i] - a[j]) > max1):                max1 = abs(a[i] - a[j])     return max1 # Driver Codeif __name__ == '__main__':    arr = [-1, 2, 3, -4, -10, 22]    size = len(arr)    print("Largest gap is :", solve(arr, size)) # This code is contributed by# Sanjit_Prasad
// A C# program to find// largest gap between// two elements in an array.using System; class GFG{ // function to solve// the given problemstatic int solve(int []a,                 int n){    int max1 = int.MinValue ;    for (int i = 0; i < n; i++)    {        for (int j = 0; j < n; j++)        {            if (Math.Abs(a[i] -                         a[j]) > max1)            {                max1 = Math.Abs(a[i] -                                a[j]);            }        }    }    return max1;} // Driver Codestatic public void Main (){    int []arr = {-1, 2, 3,                 -4, -10, 22};    int size = arr.Length;    Console.WriteLine("Largest gap is : " +                         solve(arr, size));}} // This code is contributed// by anuj_67.
<?php// A PHP program to find// largest gap between// two elements in an array. // function to solve// the given problemfunction solve($a, $n){    $max1 = PHP_INT_MIN;    for ($i = 0; $i < $n; $i++)    {        for ($j = 0; $j < $n; $j++)        {            if (abs($a[$i] -                    $a[$j]) > $max1)            {                $max1 = abs($a[$i] -                            $a[$j]);            }        }    }    return $max1;} // Driver Code$arr = array(-1, 2, 3,             -4, -10, 22);$size = count($arr);echo "Largest gap is : ",      solve($arr, $size); // This code is contributed// by anuj_67.?>
<script> // A Javascript program to find// largest gap between// two elements in an array.         // function to solve// the given problem    function solve(a,n)    {        let max1 = Number.MIN_VALUE ;             for (let i = 0; i < n; i++)    {        for (let j = 0; j < n; j++)        {            if (Math.abs(a[i] - a[j]) > max1)            {                                 max1 = Math.abs(a[i] - a[j]);            }        }    }    return max1;    }         // Driver Code    let arr=[-1, 2, 3,                 -4, -10, 22];    let size = arr.length;    document.write("Largest gap is : " +                         solve(arr, size));              // This code is contributed by rag2127     </script>
Largest gap is : 32
 
Better Approach: Now we will see a better approach it is a greedy approach that can solve this problem in O(N). We will find the maximum and minimum element of the array which can be done in O(N) and then we will return the value of (maximum-minimum).  
C++
C
Java
Python3
C#
PHP
Javascript
// A C++ program to find largest gap between// two elements in an array.#include<bits/stdc++.h>using namespace std; // function to solve the given problemint solve(int a[], int n){    int min1 = a[0];    int max1 = a[0];     // finding maximum and minimum of an array    for (int i = 0; i < n; i++)    {        if (a[i] > max1)            max1 = a[i];        if (a[i] < min1)            min1 = a[i];    }    return abs(min1 - max1);} // Driver codeint main(){    int arr[] = { -1, 2, 3, 4, -10 };    int size = sizeof(arr) / sizeof(arr[0]);    cout << "Largest gap is : " << solve(arr, size);    return 0;} //This code is contributed by Mukul Singh.
// A C program to find largest gap between// two elements in an array.#include <limits.h>#include <stdio.h>#include <stdlib.h> // function to solve the given problemint solve(int a[], int n){    int min1 = a[0];    int max1 = a[0];     // finding maximum and minimum of an array    for (int i = 0; i < n; i++) {        if (a[i] > max1)            max1 = a[i];        if (a[i] < min1)            min1 = a[i];    }         return abs(min1 - max1);} int main(){    int arr[] = { -1, 2, 3, 4, -10 };    int size = sizeof(arr) / sizeof(arr[0]);    printf("Largest gap is : %d", solve(arr, size));    return 0;}
// A Java program to find largest gap// between two elements in an array.import java.io.*; class GFG {     // function to solve the given    // problem    static int solve(int a[], int n)    {        int min1 = a[0];        int max1 = a[0];             // finding maximum and minimum        // of an array        for (int i = 0; i < n; i++)        {            if (a[i] > max1)                max1 = a[i];            if (a[i] < min1)                min1 = a[i];        }                 return Math.abs(min1 - max1);    }     // Driver code    public static void main (String[] args)    {        int []arr = { -1, 2, 3, 4, -10 };        int size = arr.length;        System.out.println("Largest gap is : "                         + solve(arr, size));    }} // This code is contributed by anuj_67.
# A python 3 program to find largest gap between# two elements in an array.  # function to solve the given problemdef solve(a,  n):     min1 = a[0]    max1 = a[0]      # finding maximum and minimum of an array    for i in range ( n):             if (a[i] > max1):            max1 = a[i]        if (a[i] < min1):            min1 = a[i]         return abs(min1 - max1) # Driver codeif __name__ == "__main__":     arr = [ -1, 2, 3, 4, -10 ]    size = len(arr)    print("Largest gap is : " ,solve(arr, size)) # This code is contributed by chitranayal 
// A C# program to find// largest gap between// two elements in an array.using System; class GFG{     // function to solve    // the given problem    static int solve(int []a,                     int n)    {        int min1 = a[0];        int max1 = a[0];             // finding maximum and        // minimum of an array        for (int i = 0; i < n; i++)        {            if (a[i] > max1)                max1 = a[i];            if (a[i] < min1)                min1 = a[i];        }                 return Math.Abs(min1 -                        max1);    }     // Driver code    public static void Main ()    {        int []arr = {-1, 2, 3, 4, -10};        int size = arr.Length;        Console.WriteLine("Largest gap is : " +                             solve(arr, size));    }} // This code is contributed// by anuj_67.
<?php// A PHP program to find// largest gap between// two elements in an array. // function to solve// the given problemfunction solve($a, $n){    $min1 = $a[0];    $max1 = $a[0];     // finding maximum and    // minimum of an array    for ($i = 0; $i < $n; $i++)    {        if ($a[$i] > $max1)            $max1 = $a[$i];        if ($a[$i] < $min1)            $min1 = $a[$i];    }         return abs($min1 - $max1);} // Driver Code$arr = array(-1, 2, 3, 4, -10);$size = count($arr);echo "Largest gap is : ",      solve($arr, $size); // This code is contributed// by anuj_67.?>
<script>// A Javascript program to find largest gap// between two elements in an array.         // function to solve the given    // problem    function solve(a,n)    {        let min1 = a[0];        let max1 = a[0];              // finding maximum and minimum        // of an array        for (let i = 0; i < n; i++)        {            if (a[i] > max1)                max1 = a[i];            if (a[i] < min1)                min1 = a[i];        }                  return Math.abs(min1 - max1);    }          // Driver code    let arr=[-1, 2, 3, 4, -10 ];    let size = arr.length;    document.write("Largest gap is : "                         + solve(arr, size));           // This code is contributed by avanitrachhadiya2155</script>
Largest gap is : 14
 
vt_m
Sanjit_Prasad
Akanksha_Rai
Code_Mech
ukasp
rag2127
avanitrachhadiya2155
Arrays
Greedy
Searching
Arrays
Searching
Greedy
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Introduction to Data Structures
Search, insert and delete in an unsorted array
Window Sliding Technique
Chocolate Distribution Problem
Longest Consecutive Subsequence
Dijkstra's shortest path algorithm | Greedy Algo-7
Prim’s Minimum Spanning Tree (MST) | Greedy Algo-5
Write a program to print all permutations of a given string
Kruskal’s Minimum Spanning Tree Algorithm | Greedy Algo-2
Huffman Coding | Greedy Algo-3