当前位置: 首页 > news >正文

leetcode 264. Ugly Number II

动态规划解决。

关键是理解如何生成新的丑数。这道题和经典的斐波那契数列问题其实是一样的。求第n个数,需要用第n个数前面的数来求。不同的是,斐波那契数列不会重复。而本题的丑数,会重复出现。

class Solution {
public:
    int nthUglyNumber(int n) {
        //dp[i]表示第i个丑数,dp[0]无意义
        vector<int> dp(n+1);
        dp[1] = 1;
        int p2 = 1;
        int p3 = 1;
        int p5 = 1;
        int num2,num3,num5;
        for(int i = 2;i <=n;i++){
            num2 = dp[p2]*2;
            num3 = dp[p3]*3;
            num5 = dp[p5]*5;
            dp[i] = min(min(num2,num3),num5);
            if(dp[i] == num2) p2++;
            if(dp[i] == num3) p3++;
            if(dp[i] == num5) p5++;
        }
        return dp[n];
    }
};

相关文章:

  • ReactNative 使用腾讯的MMKV持久化存储
  • 深入浅出:信号灯与系统V信号灯的实现与应用
  • 区块链点燃游戏行业新未来——技术变革与实践指南
  • 【Linux网络与网络编程】08.传输层协议 UDP
  • 互联网三高-数据库高并发之分库分表
  • PostgreSQL 的统计信息
  • 0x02.Redis 集群的实现原理是什么?
  • 80_Pandas如何使用NumPy的函数等(pd.np)
  • 【图像生成之21】融合了Transformer与Diffusion,Meta新作Transfusion实现图像与语言大一统
  • Hadoop文件操作指南:深入解析文件操作
  • 北洋底标印记纪年
  • TDengine 可靠性保障:数据持久化与容灾备份(二)
  • ZYNQ笔记(六):自定义IP核-LED呼吸灯
  • [特殊字符] 第十二讲 | 地统计学基础与克里金插值法(Kriging)建模实践
  • JavaScript异常机制与严格模式
  • 源码编译 Galera、MySQL 5.7 Wsrep 和安装 MySQL 5.7 Galera集群
  • JavaScript数组方法:`some()`的全面解析与应用
  • 简单使用linux
  • 论文精度:基于LVNet的高效混合架构:多帧红外小目标检测新突破
  • python推箱子游戏
  • php网站开发技术前景/178软文网
  • 时空网站建设的可行性分析/营销策略有哪些4种
  • 网页论坛/手机优化什么意思
  • 哪个网站有律师做的案件/游戏推广员怎么做
  • 新郑郑州网站建设/新网
  • 微信微网站怎么做/站长工具seo综合查询网