zoukankan      html  css  js  c++  java
  • 贪心算法求解汽车加油问题

    试用贪心算法求解汽车加油问题:

    已知一辆汽车加满油后可行驶n公里,而旅途中有若干个加油站。试设计一个有效算法,指出应在哪些加油站停靠加油,使加油次数最少,请写出该算法:

     1 int greedy(vector<int>x,int n)//定义一个int类型的向量x 
     2 {
     3     int sum=0,k=x.size();//求k为x的长度 
     4     for(int j=0;j<k;j++)
     5     {
     6         if(x[j]>n)    //加一次油最多行驶n公里,超过的话油不够使,车停在半路上了。 
     7         {
     8             cout<<"NO Solution"<<endl;
     9             return -1;
    10         }    
    11     }    
    12     for(int i=0,s=0;i<k;i++)
    13     {
    14         s+=x[i];    //s是加一次油在可行范围内行驶的路程,比如加油站相离比较近,我可以多过几个加油站再加油。 
    15         if(s>n)        //如果s>n,就需要加油啦! 
    16         {
    17             sum++;s=x[i];    //sum是加油的次数 
    18         }
    19     }
    20     return sum;  //函数值返回的结果是加油的次数 
    21 } 
  • 相关阅读:
    spring中Bean的生命周期
    java之多线程
    struts2配置详解
    值栈
    数据校验和国际化
    2016年9月23日试题整理
    SpringMVC 文件上传下载
    CSS3 新增属性
    SpringMVC数据校验
    java中进程与线程--三种实现方式
  • 原文地址:https://www.cnblogs.com/ma1998/p/12148240.html
Copyright © 2011-2022 走看看