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
}
相关推荐
梭七y4 小时前
【力扣hot100题】(032)排序链表
算法·leetcode·链表
SsummerC4 小时前
【leetcode100】数组中的第K个最大元素
python·算法·leetcode
编程绿豆侠4 小时前
力扣HOT100之链表:206. 反转链表
算法·leetcode·链表
冷琅辞6 小时前
Elixir语言的云计算
开发语言·后端·golang
记得早睡~6 小时前
leetcode51-N皇后
javascript·算法·leetcode·typescript
欧宸雅9 小时前
Clojure语言的持续集成
开发语言·后端·golang
褚翾澜10 小时前
Haskell语言的NoSQL
开发语言·后端·golang
luckyme_10 小时前
leetcode-代码随想录-哈希表-有效的字母异位词
算法·leetcode·散列表
luckyme_10 小时前
leetcode 代码随想录 数组-区间和
c++·算法·leetcode
草海桐11 小时前
golang 的github.com/dgrijalva/jwt-go包
golang·jwt·jwt-go