给定一个由n个整数组成的数组。我们需要将数组的大小减小到一。我们可以选择一对整数并删除这两个整数中较大的一个。这样会将数组大小减小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