Golang | Leetcode Golang题解之第458题可怜的小猪

题目:

题解:

Go 复制代码
func poorPigs(buckets, minutesToDie, minutesToTest int) int {
    if buckets == 1 {
        return 0
    }

    combinations := make([][]int, buckets+1)
    for i := range combinations {
        combinations[i] = make([]int, buckets+1)
    }
    combinations[0][0] = 1

    iterations := minutesToTest / minutesToDie
    f := make([][]int, buckets)
    for i := range f {
        f[i] = make([]int, iterations+1)
    }
    for i := 0; i < buckets; i++ {
        f[i][0] = 1
    }
    for j := 0; j <= iterations; j++ {
        f[0][j] = 1
    }

    for i := 1; i < buckets; i++ {
        combinations[i][0] = 1
        for j := 1; j < i; j++ {
            combinations[i][j] = combinations[i-1][j-1] + combinations[i-1][j]
        }
        combinations[i][i] = 1
        for j := 1; j <= iterations; j++ {
            for k := 0; k <= i; k++ {
                f[i][j] += f[k][j-1] * combinations[i][i-k]
            }
        }
        if f[i][iterations] >= buckets {
            return i
        }
    }
    return 0
}
相关推荐
Wy_编程7 小时前
go语言中的结构体
开发语言·后端·golang
lolo大魔王9 小时前
Go 后端实战|Gin + GORM V2 + MySQL 企业级 API 项目开发(完整版)
mysql·golang·gin
XMYX-09 小时前
28 - Go JSON 数据操作
开发语言·golang·json
敲代码的嘎仔13 小时前
力扣高频SQL基础50题详解
开发语言·数据库·笔记·sql·算法·leetcode·后端开发
jieyucx14 小时前
Go 语言核心关键字:defer 深度解析与实战避坑
开发语言·后端·golang·defer
洛水水15 小时前
【力扣100题】46.单词拆分
算法·leetcode·职场和发展
Wy_编程17 小时前
Go语言中的指针
开发语言·后端·golang
lolo大魔王17 小时前
Go语言数据库操作之GORM框架从入门到生产实战(完整版)
开发语言·数据库·golang
alphaTao18 小时前
LeetCode 每日一题 2026/5/11-2026/5/17
算法·leetcode
洛水水18 小时前
【力扣100题】45.零钱兑换
算法·leetcode·职场和发展