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
}
相关推荐
POLITE34 小时前
Leetcode 23. 合并 K 个升序链表 (Day 12)
算法·leetcode·链表
会员果汁5 小时前
leetcode-动态规划-买卖股票
算法·leetcode·动态规划
橘颂TA5 小时前
【剑斩OFFER】算法的暴力美学——二进制求和
算法·leetcode·哈希算法·散列表·结构与算法
源代码•宸7 小时前
GoLang八股(Go语言基础)
开发语言·后端·golang·map·defer·recover·panic
尋有緣7 小时前
力扣1355-活动参与者
大数据·数据库·leetcode·oracle·数据库开发
Morwit8 小时前
*【力扣hot100】 647. 回文子串
c++·算法·leetcode
iso少年9 小时前
Go 语言并发编程核心与用法
开发语言·后端·golang
菜鸟233号9 小时前
力扣96 不同的二叉搜索树 java实现
java·数据结构·算法·leetcode
千金裘换酒10 小时前
Leetcode 有效括号 栈
算法·leetcode·职场和发展
空空潍10 小时前
hot100-最小覆盖字串(day12)
数据结构·算法·leetcode