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
}
相关推荐
hn小菜鸡13 分钟前
LeetCode 1971.寻找图中是否存在路径
算法·leetcode·职场和发展
Han.miracle22 分钟前
数据结构与算法--007三数之和(medium)
算法·leetcode·排序算法
锥锋骚年1 小时前
golang 发送内网邮件和外网邮件
开发语言·后端·golang
古城小栈1 小时前
工业互联网:Go + 边缘计算实现设备监控实战
人工智能·golang·边缘计算
令狐囱1 小时前
宝塔docker 运行 go-zero-looklook项目
docker·容器·golang
moxiaoran57531 小时前
Go 语言指针
开发语言·golang
XFF不秃头2 小时前
力扣刷题笔记-下一个排列
c++·笔记·算法·leetcode
hn小菜鸡2 小时前
LeetCode 1306.跳跃游戏III
算法·leetcode·游戏
Swift社区2 小时前
LeetCode 450 - 删除二叉搜索树中的节点
算法·leetcode·职场和发展
长安er2 小时前
LeetCode 46/51 排列型回溯题笔记-全排列 / N 皇后
笔记·算法·leetcode·回溯·递归·n皇后