# 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++

 `// C++ program to find the array formed``// from the difference of each element ``// from the largest element in the given array` `#include ``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

 `// 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

 `# 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#

 `// 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`

## Javascript

 ``

Output:
`0 5 1 7 8`

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

Previous
Next