计算排列以找到最短时间

时间:2013-11-30 05:50:50

标签: c++

我需要建议用户完成的最短工作时间。

如果用户输入以后的数据,请执行以下操作:

1, 2, 1, 4, 1, 5, 1, 3, 9 and 1,4是最低限度的工作。我无法在此列表上运行排序函数来查找最小总和,因为这不会考虑序列。

我正在尝试为开源工作分发构建一个简单的门户,我是编程新手。

2 个答案:

答案 0 :(得分:0)

假设他可以跳过最多2天:

//n is the number of elements in the array
if(n<=3)
    //The minimum of the available numbers.
for(i=3;i<n;i++)
     array[i] += min(array[i-1],array[i-2],array[i-3]);
printf("%d",min(array[n-1],array[n-2],array[n-3]));

这将为您提供所需的最短持续时间。

答案 1 :(得分:0)

一个简单的解决方案:

现在你想从列表中选择 5 个号码,第一个号码必须是前三个号码之一;一旦你选择了第一个数字,在这个数字后面的项目成为一个新的列表,现在使用递归从列表中选择(5-1 =)4个数字。每次获得5个数字时,如果它的总和较小,则存储它们。



对不起,这是一个错误的答案。我误解了这个问题。这是从列表中选择特定天数的答案。您可以稍微改变它以使其正确,但效率低。