434
社区成员
发帖
与我相关
我的任务
分享一,程序存储问题
1.贪心策略:首先将每个程序根据长度进行非降序排序,定义变量cnt来记录程序的个数,然后接着遍历数组,判断每一段是否小于L,
小于则cnt++,L-=num[i];
时间复杂度:O(n);
2.反证法:该题的最优解S={2,3,8,13,20},设该题的最优解不包含2,则该题的最优解为S'={3,8,13,20},因为|S'|<|S|,与最优解矛盾。
二,对贪心算法的理解
贪心算法可以简单描述为:大事化小,小事化了。对于一个较大的问题,通过找到与子问题的重叠,把复杂的问题划分为多个小问题。并且对于每个子问题的解进行选择,找出最优值,进行处理,再找出最优值,再处理。也就是说贪心算法是一种在每一步选择中都采取在当前状态下最好或最优的选择,从而希望得到结果是最好或最优的算法。
贪心算法在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。