首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >旅行优化(最大限度地延长停留时间)

旅行优化(最大限度地延长停留时间)
EN

Stack Overflow用户
提问于 2020-04-24 03:52:54
回答 2查看 246关注 0票数 0

您可以在巴黎停留a[X]小时,并想预订一些旅行。您更喜欢预订尽可能少的旅行,以享受最后的[X]小时与最小的上下文切换。

如何没有时间成本之间的交通旅行。

输入一系列的旅行时间(小时)

代码语言:javascript
复制
e.g.[1,3,6]

剩余总时数( e.g.15 )

最低采购数量e.g. 3(6+6+3=15)

如果没有办法填补剩余的全部小时,return-1.

输入示例:

代码语言:javascript
复制
136
15

输出

代码语言:javascript
复制
3

请用java或任何语言帮助我。

EN

回答 2

Stack Overflow用户

发布于 2020-05-14 08:57:25

您的问题可以使用背包问题最小换币问题解决,两者都是优化问题。

票数 1
EN

Stack Overflow用户

发布于 2020-06-05 07:37:26

Swift

代码语言:javascript
复制
func minCoin(trips: [Int], total_hours:Int) -> Int {
    if(total_hours == 0) {
        return 0
    }
    let m: Int = trips.count
    var min: Int = Int(INT_MAX)
    for i in 0..<m {
        if(trips[i] <= total_hours)
        {
            let curr_min: Int = minCoin(trips:trips, total_hours:(total_hours-trips[i]))
            if(curr_min != INT_MAX && curr_min + 1 < min){
               min = curr_min + 1
            }
        }
    }
    return min
}

Java

代码语言:javascript
复制
int minCoin(int trips[], int total_hours)
{
   if(total_hours == 0)
     return 0
   int m = trips.length;
   int min = INT_MAX 
   for(int i = 0; i++; i<m)
   {
      if(trips[i] <= total_hours)
      {
         int curr_min = minCoin(trips, total_hours-trips[i])
         if(curr_min != INT_MAX && curr_min + 1 < min)
           min = curr_min + 1
      }
   }
   return min
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61400834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档