📌  相关文章
📜  通过删除较大的对来使数组大小为 1 的最小成本

📅  最后修改于: 2021-10-26 05:22:27             🧑  作者: Mango

给定一个由 n 个整数组成的数组。我们需要将数组的大小减少到 1。我们可以选择一对整数并删除这两个中较大的一个。这将数组大小减少 1。此操作的成本等于较小的值。找出将数组转换为单个元素所需的最小操作成本总和。
例子:

Input: 4 3 2 
Output: 4
Explanation: 
Choose (4, 2) so 4 is removed, new array 
= {2, 3}. Now choose (2, 3) so 3 is removed. 
So total cost = 2 + 2 = 4

Input: 3 4
Output: 3
Explanation: choose 3, 4, so cost is 3. 

这个想法是始终选择最小值作为对的一部分并删除较大的值。这最大限度地减少了将数组减少到大小 1 的成本。
下面是上述方法的实现:

CPP
// CPP program to find minimum cost to
// reduce array size to 1,
#include 
using namespace std;
 
// function to calculate the minimum cost
int cost(int a[], int n)
{
    // Minimum cost is n-1 multiplied with
    // minimum element.
    return (n - 1) * (*min_element(a, a + n));
}
 
// driver program to test the above function.
int main()
{
    int a[] = { 4, 3, 2 };
    int n = sizeof(a) / sizeof(a[0]);
    cout << cost(a, n) << endl;
    return 0;
}


Java
// Java program to find minimum cost
// to reduce array size to 1,
import java.lang.*;
 
public class GFG {
     
    // function to calculate the
    // minimum cost
    static int cost(int []a, int n)
    {
        int min = a[0];
         
        // find the minimum using
        // for loop
        for(int i = 1; i< a.length; i++)
        {
            if (a[i] < min)
                min = a[i];
        }
         
        // Minimum cost is n-1 multiplied
        // with minimum element.
        return (n - 1) * min;
    }
     
    // driver program to test the
    // above function.
    static public void main (String[] args)
    {
         
        int []a = { 4, 3, 2 };
        int n = a.length;
         
        System.out.println(cost(a, n));
    }
}
 
// This code is contributed by parashar.


Python3
# Python program to find minimum
# cost to reduce array size to 1
 
# function to calculate the
# minimum cost
def cost(a, n):
 
    # Minimum cost is n-1 multiplied
    # with minimum element.
    return ( (n - 1) * min(a) )
 
 
# driver code
a = [ 4, 3, 2 ]
n = len(a)
print(cost(a, n))
 
# This code is contributed by
# Smitha Dinesh Semwal


C#
// C# program to find minimum cost to
// reduce array size to 1,
using System;
using System.Linq;
 
public class GFG {
     
    // function to calculate the minimum cost
    static int cost(int []a, int n)
    {
         
        // Minimum cost is n-1 multiplied with
        // minimum element.
        return (n - 1) * a.Min();
    }
     
    // driver program to test the above function.
    static public void Main (){
         
        int []a = { 4, 3, 2 };
        int n = a.Length;
         
        Console.WriteLine(cost(a, n));
    }
}
 
// This code is contributed by vt_m.


PHP


Javascript


输出:

4

如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程学生竞争性编程现场课程