Golang | Leetcode Golang题解之第313题超级丑数

题目:

题解:

Go 复制代码
func nthSuperUglyNumber(n int, primes []int) int {
    dp := make([]int, n+1)
    m := len(primes)
    pointers := make([]int, m)
    nums := make([]int, m)
    for i := range nums {
        nums[i] = 1
    }
    for i := 1; i <= n; i++ {
        minNum := math.MaxInt64
        for j := range pointers {
            minNum = min(minNum, nums[j])
        }
        dp[i] = minNum
        for j := range nums {
            if nums[j] == minNum {
                pointers[j]++
                nums[j] = dp[pointers[j]] * primes[j]
            }
        }
    }
    return dp[n]
}

func min(a, b int) int {
    if a < b {
        return a
    }
    return b
}
相关推荐
小于负无穷4 小时前
Go 中 RPC 的使用教程
开发语言·后端·rpc·golang
鱼跃鹰飞4 小时前
Leetcode面试经典150题-739.每日温度
算法·leetcode·面试
Mopes__7 小时前
Python | Leetcode Python题解之第406题根据身高重建队列
python·leetcode·题解
子非鱼92112 小时前
【JavaScript】LeetCode:36-40
开发语言·javascript·leetcode
爱吃芝麻汤圆12 小时前
633. 平方数之和-LeetCode(C++)
c++·算法·leetcode
忍界英雄13 小时前
学习笔记-Golang中的Context
笔记·学习·golang
我爱豆子13 小时前
Leetcode Hot 100刷题记录 -Day14(矩阵置0)
java·算法·leetcode·矩阵
IT规划师15 小时前
LeetCode题集-4 - 寻找两个有序数组的中位数,图文并茂,六种解法,万字讲解
leetcode·中位数
程序猿练习生15 小时前
C++速通LeetCode简单第9题-二叉树的最大深度
c++·算法·leetcode
小陶 coding16 小时前
代码随想录刷题day32丨动态规划理论基础,509. 斐波那契数, 70. 爬楼梯, 746. 使用最小花费爬楼梯
java·数据结构·算法·leetcode·动态规划