Open In App

Array formed from difference of each element from the largest element in the given array

Given an array arr[], the task is to find the array formed from the difference of each element from the largest element in the given array.

Example: 

Input: arr[] = {3, 6, 9, 2,6} 
Output: {6, 3, 0, 7, 3} 
Explanation: 
Largest element of the array = 9 
Therefore difference of arr[i] from 9: 
Element 1: 9 – 3 = 6 
Element 2: 9 – 6 = 3 
Element 3: 9 – 9 = 0 
Element 4: 9 – 2 = 7 
Element 5: 9 – 6 = 3 
Hence the output will be {6, 3, 0, 7, 3}

Input: arr[] = {7, 2, 5, 6, 3, 1, 6, 9} 
Output: {2, 7, 4, 3, 6, 8, 3, 0} 

Approach: 
Find the largest of n elements in an array and store it in a variable largest. Now check the difference between the largest and the other elements in the array.

Below is the implementation of the above approach:  




// C++ program to find the array formed
// from the difference of each element
// from the largest element in the given array
 
#include <iostream>
using namespace std;
int difference(int arr[], int n)
{
    // Initializing current largest
    // as the first element.
    int largest = arr[0];
    int i;
 
    // For loop to compute
    // the largest element
    for (i = 0; i < n; i++) {
 
        // Checking if the current element
        // is greater than the defined largest
        if (largest < arr[i])
            largest = arr[i];
    }
 
    // For loop to replace the elements
    // in the array with the difference
    for (i = 0; i < n; i++)
        arr[i] = largest - arr[i];
 
    // For loop to print the elements
    for (i = 0; i < n; i++)
        cout << arr[i] << " ";
}
 
// Driver code
int main()
{
    int arr[] = { 10, 5, 9, 3, 2 };
    int n = sizeof(arr) / sizeof(arr[0]);
    difference(arr, n);
    return 0;
}




// Java program to find the array formed
// from the difference of each element
// from the largest element in the given array
import java.util.*;
 
class GFG
{
static void difference(int arr[], int n)
{
    // Initializing current largest
    // as the first element.
    int largest = arr[0];
    int i;
 
    // For loop to compute
    // the largest element
    for (i = 0; i < n; i++)
    {
 
        // Checking if the current element
        // is greater than the defined largest
        if (largest < arr[i])
            largest = arr[i];
    }
 
    // For loop to replace the elements
    // in the array with the difference
    for (i = 0; i < n; i++)
        arr[i] = largest - arr[i];
 
    // For loop to print the elements
    for (i = 0; i < n; i++)
        System.out.print(arr[i] + " ");
}
 
// Driver code
public static void main(String[] args)
{
    int arr[] = { 10, 5, 9, 3, 2 };
    int n = arr.length;
    difference(arr, n);
}
}
 
// This code is contributed by 29AjayKumar




# Python3 program to find the array formed
# from the difference of each element
# from the largest element in the given array
def difference(arr, n):
     
    # Initializing current largest
    # as the first element.
    largest = arr[0];
    i = 0;
 
    # For loop to compute
    # the largest element
    for i in range(n):
 
        # Checking if the current element
        # is greater than the defined largest
        if (largest < arr[i]):
            largest = arr[i];
     
    # For loop to replace the elements
    # in the array with the difference
    for i in range(n):
        arr[i] = largest - arr[i];
 
    # For loop to print the elements
    for i in range(n):
        print(arr[i], end = " ");
 
# Driver code
if __name__ == '__main__':
    arr = [ 10, 5, 9, 3, 2 ];
    n = len(arr);
    difference(arr, n);
 
# This code is contributed by Rajput-Ji




// C# program to find the array formed
// from the difference of each element
// from the largest element in the given array
using System;
 
class GFG
{
     
static void difference(int []arr, int n)
{
    // Initializing current largest
    // as the first element.
    int largest = arr[0];
    int i;
 
    // For loop to compute
    // the largest element
    for (i = 0; i < n; i++)
    {
 
        // Checking if the current element
        // is greater than the defined largest
        if (largest < arr[i])
            largest = arr[i];
    }
 
    // For loop to replace the elements
    // in the array with the difference
    for (i = 0; i < n; i++)
        arr[i] = largest - arr[i];
 
    // For loop to print the elements
    for (i = 0; i < n; i++)
        Console.Write(arr[i] + " ");
}
 
// Driver code
public static void Main(String[] args)
{
    int []arr = { 10, 5, 9, 3, 2 };
    int n = arr.Length;
    difference(arr, n);
}
}
 
// This code is contributed by PrinciRaj1992




<script>
 
// JavaScript program to find the array formed
// from the difference of each element
// from the largest element in the given array
 
     
function difference(arr, n)
{
    // Initializing current largest
    // as the first element.
    let largest = arr[0];
    let i;
 
    // For loop to compute
    // the largest element
    for (i = 0; i < n; i++)
    {
 
        // Checking if the current element
        // is greater than the defined largest
        if (largest < arr[i])
            largest = arr[i];
    }
 
    // For loop to replace the elements
    // in the array with the difference
    for (i = 0; i < n; i++)
        arr[i] = largest - arr[i];
 
    // For loop to print the elements
    for (i = 0; i < n; i++)
        document.write(arr[i] + " ");
}
 
// Driver code
 
let arr = [10, 5, 9, 3, 2];
let n = arr.length;
difference(arr, n);
 
</script>

Output: 
0 5 1 7 8

 

Time complexity: O(n)
Auxiliary space: O(1)


Article Tags :