使用替換以最小化成本,在 C++ 中允許其他元素


假設我們有一個包含 N 個元素的陣列。我們必須按照給定的操作從陣列中刪除元素。操作與選擇陣列中的任意兩個數字,並刪除較大的數字的操作類似。此操作中包含的成本與較小的數字相同。我們必須一次只刪除一個元素,基於此操作,並以最低成本執行任務。假設陣列中包含{4, 2, 5}。我取 4 和 2,透過支付成本 2 來移除 4,然後再次用成本 2 移除 5。

該方法很簡單。眾所周知,成本將與較小的數字相同,因此為了降低成本,我們將取最小的數字,以及其他一些元素,然後刪除較大的數字,成本會一直是最小的。因此,總成本為 (N – 1)* 最小數字。

示例

 線上演示

#include <iostream>
#include <algorithm>
using namespace std;
int getMinimumCost(int arr[], int n) {
   int smallest = *min_element(arr, arr+n);
   return smallest * (n - 1);
}
int main() {
   int arr[] = { 4, 2, 5 };
   int n = sizeof(arr)/sizeof(arr[0]);
   cout << "Minimum cost: " << getMinimumCost(arr, n);
}

輸出

Minimum cost: 4

更新於: 2019-10-21

150 次瀏覽

開啟您的 職業生涯

透過完成課程,獲得認證

開始學習
廣告
© . All rights reserved.