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

【力扣hot100题】(083)完全平方数

想了一会,其实动态规划题只需要往状态转换方程想就好了。

最开始的想法是构建词典记录一直到n的平方数,然后用数组记录从1到n的完全平方数的最小数,每次变量一遍词典,比如n为9就分别遍历比较第9-3*3个数的完全平方数的最小数,第9-2*2个数的完全平方数的最小数,第9-1*1个数的完全平方数的最小数……每次取最小的那个加一。

优化掉字典就是这样:

class Solution {
public:
    int numSquares(int n) {
        int pre[10001];
        pre[0]=0;
        pre[1]=1;
        for(int i=2;i<=n;i++){
            pre[i]=i;
            for(int j=0;j*j<=i;j++) pre[i]=min(pre[i-j*j]+1,pre[i]);
        }
        return pre[n];
    }
};

http://www.dtcms.com/a/126406.html

相关文章:

  • 系统性能信息模块-psutil
  • Java中LocalDateTime类
  • freertos低功耗模式简要概述
  • 【愚公系列】《高效使用DeepSeek》065-全球物流预警
  • flutter 获取通话记录和通讯录
  • Webstorm 常用插件及便携设置
  • C语言 内存管理
  • .NET MAUI教程2-利用.NET CommunityToolkit.Maui框架弹Toast
  • Array.every() 和 Array.some()用于数组条件判断的方法,它们的核心区别在于判断逻辑和短路行为
  • LeetCode算法题(Go语言实现)_39
  • 【LaTeX】安装
  • leetcode-419.棋盘上的战舰
  • 报错:mount: unknown filesystem type ‘vfat’
  • 全国产压力传感器常见的故障有哪些?
  • 全网通4G北斗GPS双模定位系统 车载定位终端
  • vector与deque应用
  • 第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 A 组真题
  • 免费AI编程插件Fitten Code + IntelliJ IDEA实现AI辅助编程实战指南
  • 自学Matlab-Simscape(初级)- 2.1 Simscape Multibody 模块之关节(运动副)
  • Java 设计模式:适配器模式详解
  • Enovia许可使用限制
  • 新书速览|从零构建大模型:算法、训练与微调
  • 【Python使用】嘿马python运维开发全体系教程第3篇:常用工具使用,linux系统管理【附代码文档】
  • 在 Dev-C++中编译运行GUI 程序介绍(三)有趣示例一组
  • AST 技术进行 JavaScript 反混淆实战
  • 如何查询node inode上限是多少?
  • 性能飙升50%,react-virtualized-list如何优化大数据集滚动渲染
  • WPF ComboBox首次加载不触发SelectionChanged事件
  • 企业微信:企业ID、AgentID、SecretID
  • linux进程三件套nohup、ps 和 kill 命令的详细解析