Replace the maximum element in the array by coefficient of range

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.478261

Input: 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++




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




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




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




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


Javascript




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


Output

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.
Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button