力扣HOT100之动态规划:279. 完全平方数

article/2025/7/27 14:27:12


这道题之前在刷代码随想录的时候做过,但是现在给忘干净了,现在甚至都不记得这是一个背包问题。。。又反过头去看代码随想录的视频才做出来的。这道题就是一个背包问题,这个问题可以抽象为:对于容量为j的背包,要计算出恰好装满这个背包的最少物品数。这道题没有排列数与组合数之分,所以先遍历背包或者先遍历物品都是可以的。接下来看动规五部曲:
1.确定dp[j]的含义:装满容量为j的背包所需要的最少物品数
2.确定递推公式:dp[j] = min(dp[j], dp[j - nums[i]]);
3.dp数组初始化:dp[0] = 0;
4.确定遍历顺序:先遍历物品或者先遍历背包都可以
5.打印数组(省略)
对于这道题而言,组成整数n的所有可能的平方数为物品,因此我们需要将1 ~ (int)sqrt(n)添加到一个数组中。然后初始化也很容易想到:当背包容量为0时,我们不需要放任何物品,因此dp[0]初始化为0,由于我们遍历的过程中,物品nums[i]可以选择放,也可以选择不放,上述两种情况对应的最少物品数分别为dp[j - nums[i]] + 1dp[j],我们需要取其中的最小值作为最新结果。

class Solution {
public:int numSquares(int n) {//动规五部曲//1.确定dp[j]的含义:装满容量为j的背包所需要的最少物品数//2.确定递推公式:dp[j] = min(dp[j], dp[j - coins[i]]);//3.dp数组初始化:dp[0] = 0//4.确定遍历顺序:先遍历物品或者先遍历背包都可以//5.打印数组(省略)vector<int> nums;vector<int> dp(n + 1, INT_MAX);//列出所有可以用上的完全平方数(相当于物品)for(int i = 1; i <= (int)sqrt(n); i++)nums.emplace_back(i * i);//初始化dp[0] = 0;for(int i = 0; i < nums.size(); i++){  //遍历物品for(int j = nums[i]; j <= n; j++){  //遍历背包dp[j] = min(dp[j], dp[j - nums[i]] + 1);}}return dp[n];}
};

http://www.hkcw.cn/article/sieOVSrLfQ.shtml

相关文章

Pytorch Geometric官方例程pytorch_geometric/examples/link_pred.py环境安装教程及图数据集制作

最近需要训练图卷积神经网络&#xff08;Graph Convolution Neural Network, GCNN&#xff09;&#xff0c;在配置GCNN环境上总结了一些经验。 我觉得对于初学者而言&#xff0c;图神经网络的训练会有2个难点&#xff1a; ①环境配置 ②数据集制作 一、环境配置 我最初光想…

AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月30日第93弹

从今天开始&#xff0c;咱们还是暂时基于旧的模型进行预测&#xff0c;好了&#xff0c;废话不多说&#xff0c;按照老办法&#xff0c;重点8-9码定位&#xff0c;配合三胆下1或下2&#xff0c;杀1-2个和尾&#xff0c;再杀4-5个和值&#xff0c;可以做到100-300注左右。 (1)定…

架构加速-深度学习教程

由于RK、jetson nano和电脑的GPU不相同&#xff0c;对应的pytorch也不同&#xff0c;因此不能直接将电脑训练好的模型丢到板端运行&#xff0c;因为训练的模型框架不同。就像你torch1.13和torch2.0都不一定支持&#xff0c;更何况不同平台上的torch。因此需要进行onnx模型转化&…

顶会新热门:机器学习可解释性

&#x1f9c0;机器学习模型的可解释性一直是研究的热点和挑战之一&#xff0c;同样也是近两年各大顶会的投稿热门。 &#x1f9c0;这是因为模型的决策过程不仅需要高准确性&#xff0c;还需要能被我们理解&#xff0c;不然我们很难将它迁移到其它的问题中&#xff0c;也很难进…

MicroPython+L298N+ESP32控制电机转速

要使用MicroPython控制L298N电机驱动板来控制电机的转速&#xff0c;你可以通过PWM&#xff08;脉冲宽度调制&#xff09;信号来调节电机速度。L298N是一个双H桥驱动器&#xff0c;可以同时控制两个电机的正反转和速度。 硬件准备&#xff1a; 1. L298N 电机控制板 2. ESP32…

Chainlink:连接 Web2 与 Web3 的去中心化桥梁

区块链技术通过智能合约实现了去中心化的自动执行&#xff0c;但智能合约无法直接访问链下数据&#xff0c;限制了其在现实世界的应用。Chainlink 作为去中心化预言机网络&#xff0c;以信任最小化的方式解决了这一问题&#xff0c;成为连接传统互联网&#xff08;Web2&#xf…

杨传辉:构建 Data × AI 能力,打造 AI 时代的一体化数据底座|OceanBase 开发者大会实录

5 月 17 日&#xff0c;OceanBase 在广州举办第三届开发者大会。主论坛环节&#xff0c;OceanBase CTO 杨传辉系统阐述了 Data AI 战略&#xff0c;并正式推出三大产品&#xff1a;PowerRAG、共享存储 及OceanBase桌面版。 杨传辉指出&#xff0c;数据与AI模型的一体化融合&a…

AU6825集成音频DSP的2x32W数字型ClaSSD音频功率放大器(替代TAS5825)

1.特性 ● 输出配置 - 立体声 2.0: 2 x 32W (8Ω,24V,THD N 10%) - 立体声 2.0: 2 x 26W (8Ω,21V,THD N 1%) ● 供电电压范围 - PVDD:4.5V -26.4V - DVDD: 1.8V 或者 3.3V ● 静态功耗 - 37mA at PVDD12V ● 音频性能指标 - THDN ≤ 0.02% at 1W,1kHz - SNR ≥ 107dB (A-wei…

关于ADS分辨率问题

笔记本上使用ADS&#xff08;Advanced Design System &#xff09;默认的界面挺大的&#xff0c;图标和字体都大&#xff0c;界面清新&#xff0c;给人一种呆呆易上手的感觉。 整个屏幕的截图 直到我打开了这个OPTIM的选项卡&#xff0c;它太长了&#xff0c;由于缩放太大&am…

海外DeepLink方案复杂?用openinstall一站式链接世界

App出海难免水土不服&#xff0c;商业模型、用户画像、增长方向没有一样是省心的&#xff0c;国内标配的DeepLink&#xff08;深度链接&#xff09;方案如果照搬出海同样无法达到最佳体验。 要知道国内外移动端生态是截然不同的&#xff0c;除了主流的URL Scheme和iOS Univers…

Ollama(1)知识点配置篇

ollama已经成功安装成功后&#xff0c;通常大家会对模型的下载位置和访问权限进行配置 1.模型下载位置修改 都是修改系统环境变量。 &#xff08;1&#xff09;默认下载位置 macOS: ~/.ollama/modelsLinux: /usr/share/ollama/.ollama/modelsWindows: C:\Users\你的电脑用户…

C# SolidWorks二次开发-实战1,找文件名不同实体相同的零件。

今天这篇文章话题来源于群里的聊天&#xff0c;在讨论有些插件功能的开发原理。 如标题&#xff0c;今天讲的是如何查找零件文件名不一样&#xff0c;但实际可能是同一个东西的办法。 - 题外话 熟悉Solidworks的人都知道&#xff0c;Solidworks有一个比较零件或者特征不同点的…

ES5时代的残党(被ES6淘汰的JS写法)

近年来&#xff0c;JavaScript语言经历了翻天覆地的变化。ES6(ECMAScript 2015)的发布标志着JavaScript进入了现代化时代&#xff0c;带来了大量新特性和更优雅的写法。但时至今日&#xff0c;许多开发者仍然固守着ES5时代的老旧模式&#xff0c;这不仅使代码显得过时&#xff…

【Python】4.字典和文件

文章目录 一、字典1、字典是什么&#xff1f;2、创建字典3、查找 key4、新增/修改元素5、删除元素6、遍历字典元素7、取出所有 key 和 value8、合法的 key 类型小结 二、文件1、文件是什么&#xff1f;2、文件路径3、文件操作1&#xff09;打开文件2&#xff09;关闭文件3&…

物流项目第十一期(智能调度之分配快递员)

本项目专栏&#xff1a; 物流项目_Auc23的博客-CSDN博客 整体核心业务流程 关键流程说明&#xff1a; 用户下单后&#xff0c;会产生取件任务&#xff0c;该任务也是由调度中心进行调度的订单转运单后&#xff0c;会发送消息到调度中心&#xff0c;在调度中心中对相同节点的运…

React 项目中封装 Excel 导入导出组件:技术分享与实践

文章目录 前言一、为什么需要封装 Excel 组件&#xff1f;二、技术选型三、核心实现1. 安装依赖2. 封装Excel导出3. 封装导入组件 &#xff08;UploadExcel&#xff09; 总结 前言 在 React 项目中&#xff0c;处理 Excel 文件的导入和导出是常见的业务需求。无论是导出报表数…

用calibredrv提取版图中指定类型cell,保留位置信息并输出新的gds

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 现在有一个gds,其中的bump位置信息是我们需要的,如何从现有的gds中提取我们需要的部分呢? 需要用到工具calibredrv,如果数量少,可以用图形界面操作,方法如下: 01 打开gds calibredrv -m inp…

iOS 使用CocoaPods 添加Alamofire 提示错误的问题

Sandbox: rsync(59817) deny(1) file-write-create /Users/aaa/Library/Developer/Xcode/DerivedData/myApp-bpwnzikesjzmbadkbokxllvexrrl/Build/Products/Debug-iphoneos/myApp.app/Frameworks/Alamofire.framework/Alamofire.bundle把这个改成 no 2 设置配置文件

Python基本运算符

White graces&#xff1a;个人主页 &#x1f439;今日诗词:相恨不如潮有信&#xff0c;相思始觉海非深&#x1f439; ⛳️点赞 ☀️收藏⭐️关注&#x1f4ac;卑微小博主&#x1f64f; ⛳️点赞 ☀️收藏⭐️关注&#x1f4ac;卑微小博主&#x1f64f; 目录 &#x1f9ee; Pyt…

nginx: [emerg] bind() to 0.0.0.0:80 failed (10013: 80端口被占用

Nginx启动报错&#xff1a;nginx: [emerg] bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions) 这个报错代表80端口被占用 先查看占用80的端口 netstat -aon | findstr :80 把它杀掉&#xff0c;强…