1 Star 0 Fork 0

catyMap/AlgorithmNote

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
shipWithinDays.go 815 Bytes
一键复制 编辑 原始数据 按行查看 历史
catyMap 提交于 2021-07-12 07:44 +08:00 . 更新题库
package main
import (
"fmt"
"sort"
)
func shipWithinDays(weights []int, D int) int {
// 1.找到左右边界值
left , right := 0 , 0
for _ ,v := range weights {
if left < v {
left = v
}
right += v
}
// 2.写出不符合条件时的函数
return left + sort.Search(right - left , func(x int) bool {
// += left的原因是因为要在weights里找,不加left就直接跑出weight的边界了
x += left
sum ,days := 0 , 0
for i := 0 ; i < len(weights) ; i++ {
sum += weights[i]
if i + 1 >= len(weights) || sum + weights[i+1] > x {
days ++
sum = 0
}
}
return days <= D
})
}
func main() {
weights := []int{214,376,385,64,203,394,117,305,297,253,110,470,340,388,482,182,341,43,184,314,265,418,332,111,18,263,4,243}
D := 14
fmt.Println(shipWithinDays(weights ,D))
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/dogemap/algorithm-note.git
git@gitee.com:dogemap/algorithm-note.git
dogemap
algorithm-note
AlgorithmNote
dc486f96f6c1

搜索帮助