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
}
相关推荐
Rhystt1 小时前
代码随想录第二十六天|669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
数据结构·c++·算法·leetcode
源代码•宸1 小时前
简版抖音项目——项目需求、项目整体设计、Gin 框架使用、视频模块方案设计、用户与鉴权模块方案设计、JWT
经验分享·后端·golang·音视频·gin·jwt·gorm
nix.gnehc2 小时前
深入浅出 Go 内存管理(二):预分配、GC 与内存复用实战
golang
creator_Li2 小时前
Golang的Channel
golang·channel
TracyCoder1232 小时前
LeetCode Hot100(57/100)——5. 最长回文子串
算法·leetcode·职场和发展
WZ188104638692 小时前
LeetCode第20题
算法·leetcode
吕司3 小时前
LeetCode Hot Code——三数之和
数据结构·算法·leetcode
YGGP3 小时前
【Golang】LeetCode 54. 螺旋矩阵
算法·leetcode·矩阵
TracyCoder1233 小时前
LeetCode Hot100(58/100)——138. 随机链表的复制
leetcode·链表
Frostnova丶3 小时前
LeetCode 868. 二进制间距
算法·leetcode