Skip to content
Related Articles
Open in App
Not now

Related Articles

Replace the maximum element in the array by coefficient of range

Improve Article
Save Article
  • Difficulty Level : Basic
  • Last Updated : 13 Sep, 2022
Improve Article
Save Article

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.

My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!