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> |
0 5 1 7 8
Time complexity: O(n)
Auxiliary space: O(1)