当前位置: 首页 > 编程笔记 >

通过用C ++替换其他项来最大程度地降低成本

能向晨
2023-03-14
本文向大家介绍通过用C ++替换其他项来最大程度地降低成本,包括了通过用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
 类似资料:
  • 本文向大家介绍如何最大限度地降低多线程C#代码的复杂性,包括了如何最大限度地降低多线程C#代码的复杂性的使用技巧和注意事项,需要的朋友参考一下 分支或多线程编程是编程时最难最对的事情之一。这是由于它们的并行性质所致,即要求采用与使用单线程的线性编程完全不同的思维模式。对于这个问题,恰当类比就是抛接杂耍表演者,必须在空中抛接多个球,而不要让它们相互干扰。这是一项重大挑战。然而,通过正确的工具和思维模

  • 问题内容: 我有一个JLabel,上面有很多文字。有没有一种方法可以使JLabel具有最大宽度,以便它包装文本以使其不超过该宽度? 谢谢 问题答案: 没有。 您可以在标签中使用HTML,但随后必须对break标签进行硬编码。 更好的方法是使用JTextArea并打开环绕。您可以更改文本的背景,前景,字体等,使其看起来像标签。 请注意,至少从Java 7开始,此答案已过时。 按照@darren的回答

  • 问题内容: 我遇到一种情况,必须动态创建SQL字符串,并且在可能的情况下尝试使用参数和sp_executesql,以便可以重用查询计划。通过大量的在线阅读和个人经验阅读,我发现“ NOT IN”和“ INNER / LEFTJOIN”的执行速度较慢,并且在基表(最左侧)很大(150万行,其中有50列)时,价格昂贵)。我还读到应该避免使用任何类型的函数,因为它会减慢查询速度,所以我想知道哪个更糟?

  • 我在用BigDecimal做一些计算。最近我遇到: 这个问题的答案贴在这里:算术异常:“非终止十进制扩展;没有精确可表示的十进制结果” 这意味着,有一些除法有无限的小数,所以BigDecimal告诉我它不能精确计算结果。为了避免这种情况,我必须调用

  • 我们使用实时数据库将数据实时同步到客户端设备,这导致了Firebase的一大笔账单。 该应用程序的写入次数很少,它主要是一个读密集型应用程序。 感谢您的帮助,谢谢!

  • 我对BigQuery中的集群表(带有日期分区)有一个问题。我有一个由名为entity_id的列集群的表。问题是,我希望在进行由这些集群列过滤的查询时看到字节读取减少,但根据BigQuery Web UI,它无论如何都在进行全扫描。 例如:<br>从<code>project.usersDataset中选择*。users_cluster其中entity_id='405849241'限制为1000 返