第四章作业

1、对贪心算法的理解

贪心选择是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。这是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。贪心算法不是对所有问题都能得到整体最优解,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。

2、汽车加油问题的贪心选择

先遍历一遍路径长度,当出现长度大于n时,输出No Solution,然后把每个路径长度加起来,当大于n时就次数++,一直遍历到数组结束。

int num = 0;
for(int i = 0;i <= k;i++) { 
if(d[i] > n) {
cout<<("No Solution!");
return;
}
}
for(int i = 0,s = 0;i <= k;i++) {
s += d[i];
if(s > n) {
num++;
s = d[i];
}
}
cout<<num;

 

3、算法想到了但是实现不了是最大的问题,有时候经常出现一半正确一般错误的情况。结对编程最大的好处是两个人一起想算法。一个人想不到说不定另一个就想到了。

posted @ 2019-11-26 10:34  deceiver丶  阅读(100)  评论(0编辑  收藏  举报