算法第四章作业

1.对贪心算法的理解

贪心,顾名思义就是要尽可能拿到最好的,放在算法上看就是得到最好的结果,而这里的“最好的结果”是子问题的,也是暂时的,

就目前而言能够得出的最好的结果,并不需要想动态规划那样考虑整体最优,所以最后得到的结果也不一定是整体最优解。

2.请说明汽车加油问题的贪心选择性质

汽车加油问题要求使沿途加油次数最少,那么我们就得使汽车尽可能地开得远即将油都用完(中途不停车)

首先我们要判断加油站之间的距离是否大于加满油可行驶的公里数,若大于,则无法到达目的地,输出“No Solution!”

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

 

否则,则可达,最后得出最少加油次数num。

for(int i = 0,s = 0;i <= k;i++) {   
        s += d[i];   
        if(s > n) {   
            num++;   
            s = d[i];   
        }   
    }  

 

3请说明在本章学习过程中遇到的问题及结对编程的情况

在学习贪心算法及结对编程的过程中,我和队友之间交谈密切,大大加深了我对贪心算法的理解。

posted @ 2018-12-02 19:05  陈志文  阅读(118)  评论(0)    收藏  举报