给定一个由 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 现场工作专业课程和学生竞争性编程现场课程。