[Leetcode] 每日两题 313 417 -day116

本文介绍了LeetCode的两道题目,313.超级丑数,利用动态规划(DP)避免优先队列导致的超时问题;417.太平洋大西洋水流问题,通过两次遍历边界找到同时可达的区域。
摘要由CSDN通过智能技术生成
313. 超级丑数

在这里插入图片描述

这个题一开始想到用 优先队列来做,但是超时了, 原因是维护优先队列需要花费时间

其实其核心思想很难描述 ,用人话讲就是:

对于质因数列表中的每个元素,需要维护一个值来记录,上次用这个元素构建的最大值是多少,

然后下次,只要比较,所有质因数列表重新又根据上一轮的最大值来构建的新的值的最小值,

而如果维护dp 就可以不记录值,记录dp的位置就行

class Solution {
public:
    int nthSuperUglyNumber(int n, vector<int>& primes) {
        long res =0;
        vector<long> dp(n+1,1);
        
        int m= primes.size();
        vector<long> resnum(m,1);
        vector<int> lastloc(m,1);
        for (int i =2;i<=n;i++){
            long minnum =INT_MAX;
            int mi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值