Given an array arr[] of integer elements, the task is to replace the maximum element in the array by the coefficient of range of the same array.
Coefficient of Range: (Max – Min) / (Max + Min)
Examples:
Input: arr[] = {15, 16, 10, 9, 6, 7, 17}
Output: 15 16 10 9 6 7 0.478261
Max = 17, Min = 6
Coefficient of Range = (Max – Min) / (Max + Min) = 11 / 23 = 0.478261Input: arr[] = {5, 10, 15}
Output: 5 10 0.5
Approach: Find the maximum and minimum element from the given array and calculate the coefficient of range, coeff = (Max – Min) / (Max + Min) then replace maximum element with the coeff calculated. After the array has been updated, print the contents of the updated array.
Below is the implementation of the above approach:
// C++ implementation to replace maximum element // by coefficient of range #include <bits/stdc++.h> using namespace std;
// Utility function to print the contents of the array void printArr( float arr[], int n)
{ for ( int i = 0; i < n; i++)
cout << arr[i] << " " ;
} // Function to replace the maximum element from the array // with the coefficient of range of the array void replaceMax( float arr[], int n)
{ // Maximum element from the array
float max = *std::max_element(arr, arr + n);
// Minimum element from the array
float min = *std::min_element(arr, arr + n);
// Calculate the coefficient of range for the array
float range = max - min;
float coeffOfRange = range / (max + min);
// Assuming all the array elements are distinct
// Replace the maximum element with
// the coefficient of range of the array
for ( int i = 0; i < n; i++) {
if (arr[i] == max) {
arr[i] = coeffOfRange;
break ;
}
}
// Print the updated array
printArr(arr, n);
} // Driver code int main()
{ float arr[] = { 15, 16, 10, 9, 6, 7, 17 };
int n = sizeof (arr) / sizeof (arr[0]);
replaceMax(arr, n);
return 0;
} |
// Java implementation to replace maximum element // by coefficient of range import java.util.*;
class GFG
{ // Utility function to print the // contents of the array static void printArr( float arr[], int n)
{ for ( int i = 0 ; i < n; i++)
System.out.print(arr[i] + " " );
} // Function to replace the maximum // element from the array with the // coefficient of range of the array static void replaceMax( float arr[], int n)
{ // Maximum element from the array
float max = arr[ 0 ];
for ( int i = 0 ; i < n; i++)
{
if (arr[i] > max)
max = arr[i];
}
// Minimum element from the array
float min = arr[ 0 ];
for ( int i = 0 ; i < n; i++)
{
if (arr[i] < min)
min = arr[i];
}
// Calculate the coefficient of
// range for the array
float range = max - min;
float coeffOfRange = range / (max + min);
// Assuming all the array elements are distinct
// Replace the maximum element with
// the coefficient of range of the array
for ( int i = 0 ; i < n; i++)
{
if (arr[i] == max)
{
arr[i] = coeffOfRange;
break ;
}
}
// Print the updated array
printArr(arr, n);
} // Driver code public static void main(String args[])
{ float arr[] = { 15 , 16 , 10 , 9 , 6 , 7 , 17 };
int n = arr.length;
replaceMax(arr, n);
} } // This code is contributed by // Sahil_Shelangia |
# Python3 implementation to replace # maximum element by coefficient of range # Utility function to print the # contents of the array def printArr(arr, n) :
for i in range (n) :
print (arr[i], end = " " )
# Function to replace the maximum element # from the array with the coefficient of # range of the array def replaceMax(arr, n) :
# Maximum element from the array
max_element = max (arr)
# Minimum element from the array
min_element = min (arr)
# Calculate the coefficient of
# range for the array
ranges = max_element - min_element
coeffOfRange = ranges / (max_element + min_element)
# Assuming all the array elements are
# distinct. Replace the maximum element
# with the coefficient of range of the array
for i in range (n) :
if (arr[i] = = max_element) :
arr[i] = coeffOfRange
break
# Print the updated array
printArr(arr, n)
# Driver code if __name__ = = "__main__" :
arr = [ 15 , 16 , 10 , 9 , 6 , 7 , 17 ]
n = len (arr)
replaceMax(arr, n)
# This code is contributed by Ryuga |
// C# implementation to replace maximum element // by coefficient of range using System;
class GFG
{ // Utility function to print the // contents of the array static void printArr( float []arr, int n)
{ for ( int i = 0; i < n; i++)
Console.Write(arr[i] + " " );
} // Function to replace the maximum // element from the array with the // coefficient of range of the array static void replaceMax( float []arr, int n)
{ // Maximum element from the array
float max = arr[0];
for ( int i = 0; i < n; i++)
{
if (arr[i] > max)
max = arr[i];
}
// Minimum element from the array
float min = arr[0];
for ( int i = 0; i < n; i++)
{
if (arr[i] < min)
min = arr[i];
}
// Calculate the coefficient of
// range for the array
float range = max - min;
float coeffOfRange = range / (max + min);
// Assuming all the array elements are distinct
// Replace the maximum element with
// the coefficient of range of the array
for ( int i = 0; i < n; i++)
{
if (arr[i] == max)
{
arr[i] = coeffOfRange;
break ;
}
}
// Print the updated array
printArr(arr, n);
} // Driver code public static void Main()
{ float []arr = { 15, 16, 10, 9, 6, 7, 17 };
int n = arr.Length;
replaceMax(arr, n);
} } // This code is contributed by // shs.. |
<?php // PHP implementation to replace maximum // element by coefficient of range // Utility function to print the // contents of the array function printArr( $arr , $n )
{ for ( $i = 0; $i < $n ; $i ++)
echo $arr [ $i ] . " " ;
} // Function to replace the maximum element // from the array with the coefficient of // range of the array function replaceMax( $arr , $n )
{ // Maximum element from the array
$max = max( $arr );
// Minimum element from the array
$min = min( $arr );
// Calculate the coefficient of
// range for the array
$range = $max - $min ;
$coeffOfRange = round ( $range /
( $max + $min ), 6);
// Assuming all the array elements
// are distinct. Replace the maximum
// element with the coefficient of
// range of the array
for ( $i = 0; $i < $n ; $i ++)
{
if ( $arr [ $i ] == $max )
{
$arr [ $i ] = $coeffOfRange ;
break ;
}
}
// Print the updated array
printArr( $arr , $n );
} // Driver code $arr = array ( 15, 16, 10, 9, 6, 7, 17 );
$n = count ( $arr );
replaceMax( $arr , $n );
// This code is contributed by mits ?> |
<script> // JavaScript implementation to
// replace maximum element
// by coefficient of range
// Utility function to print the
// contents of the array
function printArr(arr, n)
{
for (let i = 0; i < n - 1; i++)
document.write(arr[i] + " " );
document.write(arr[n - 1].toFixed(6));
}
// Function to replace the maximum
// element from the array with the
// coefficient of range of the array
function replaceMax(arr, n)
{
// Maximum element from the array
let max = arr[0];
for (let i = 0; i < n; i++)
{
if (arr[i] > max)
max = arr[i];
}
// Minimum element from the array
let min = arr[0];
for (let i = 0; i < n; i++)
{
if (arr[i] < min)
min = arr[i];
}
// Calculate the coefficient of
// range for the array
let range = max - min;
let coeffOfRange = range / (max + min);
// Assuming all the array elements are distinct
// Replace the maximum element with
// the coefficient of range of the array
for (let i = 0; i < n; i++)
{
if (arr[i] == max)
{
arr[i] = coeffOfRange;
break ;
}
}
// Print the updated array
printArr(arr, n);
}
let arr = [ 15, 16, 10, 9, 6, 7, 17 ];
let n = arr.length;
replaceMax(arr, n);
</script> |
15 16 10 9 6 7 0.478261
Complexity Analysis:
- Time Complexity : O(n), since the loop runs from 0 to (n – 1).
- Auxiliary Space: O(1), since no extra space has been taken.