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
}
相关推荐
YGGP12 分钟前
【Golang】LeetCode 21. 合并两个有序链表
leetcode·链表·golang
看见繁华14 分钟前
GO 教程
开发语言·后端·golang
小袁顶风作案15 分钟前
leetcode力扣——135.分发糖果
算法·leetcode·职场和发展
Yy_Yyyyy_zz17 分钟前
深入理解 Go 的多返回值:语法、编译原理与工程实践
开发语言·后端·golang
YGGP40 分钟前
【Golang】LeetCode 19. 删除链表的倒数第 N 个节点
算法·leetcode·链表
天远云服1 小时前
Fintech硬核架构:解析天远贷前风险报告接口在Go微服务中的解析策略
微服务·架构·golang
平生不喜凡桃李1 小时前
Leetcode-240 :搜索二维矩阵
leetcode·矩阵·深度优先
Grassto1 小时前
Go 在哪里找第三方包?Module 查找顺序详解
开发语言·后端·golang
橘颂TA1 小时前
【剑斩OFFER】算法的暴力美学——面试题 01.02 :判定是否互为字符串重排
c++·算法·leetcode·职场和发展·结构与算法
Tisfy1 小时前
LeetCode 1390.四因数:因数分解+缓存
算法·leetcode·缓存