我需要建议用户完成的最短工作时间。
如果用户输入以后的数据,请执行以下操作:
1, 2, 1, 4, 1, 5, 1, 3, 9 and 1
,4是最低限度的工作。我无法在此列表上运行排序函数来查找最小总和,因为这不会考虑序列。
我正在尝试为开源工作分发构建一个简单的门户,我是编程新手。
答案 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个数字时,如果它的总和较小,则存储它们。
对不起,这是一个错误的答案。我误解了这个问题。这是从列表中选择特定天数的答案。您可以稍微改变它以使其正确,但效率低。