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
}
相关推荐
不会写DN26 分钟前
Go 中最主流 JWT 库 jwt -go
开发语言·后端·golang
_日拱一卒40 分钟前
LeetCode:和为K的子数组
算法·leetcode·职场和发展
Mr_Xuhhh1 小时前
LeetCode 热题 100 刷题笔记:数组与排列的经典解法
数据结构·算法·leetcode
liuqun03191 小时前
go进阶之gc
开发语言·后端·golang
老四啊laosi1 小时前
[双指针] 3. 力扣--快乐数
算法·leetcode·快慢指针
古城小栈1 小时前
go核武器——pprof 性能分析
golang
会编程的土豆1 小时前
leetcode hot 100 之哈希
算法·leetcode·哈希算法
_深海凉_1 小时前
LeetCode热题100-反转链表
python·leetcode·链表
Trouvaille ~1 小时前
【优选算法篇】BFS 解决最短路——寻找最优路径的真谛
c++·算法·leetcode·面试·蓝桥杯·宽度优先·最短路问题
Magic--2 小时前
【LeetCode 27. 移除元素】C++ 范围 for 极简实现与原理解析
c++·算法·leetcode