434
社区成员
发帖
与我相关
我的任务
分享一、程序存储问题
1、贪心策略
根据程序长度进行升序排序,接着遍历a数组,判断每一段a[i]是否小于m,小于则result++,m -= a[i];
尽可能找长度小的程序
2、证明
最优解S={2,3,8,13,20}
设最优解S不包含长度为2的程序,则S={3,8,13,20},S'={2,3,8,13,20},|S'|>|S|,与S是最优解矛盾
3、时间复杂度
遍历长度数组,时间复杂度为O(n)
二、对贪心算法的理解
贪心算法的基本思路是从问题的某一个初始解出发一步一步地进行,根据某个优化测度,每一步都要确保能获得局部最优解。每一步只考虑一个数据,他的选取应该满足局部优化的条件。若下一个数据和部分最优解连在一起不再是可行解时,就不把该数据添加到部分解中,直到把所有数据枚举完,或者不能再添加算法停止。