当前位置:网站首页>力扣279-完全平方数——动态规划
力扣279-完全平方数——动态规划
2022-07-20 02:19:00 【张怼怼√】
题目描述
给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。
完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。
解题思路
n 的完全平方数在最多的情况下为 n : 可以认为是 n 个1 相加;
最少的情况下为 n 减去一个平方数 的 平方数 再加 1;这个平方数一般不会超过 n 的算数平方根;
所以状态转移方程应该是:
min(dp[i], dp[i - j * j] + 1)
放一张大佬的图帮助理解:
输入输出示例
代码
class Solution {
public int numSquares(int n) {
int[] dp = new int[n + 1];
for(int i = 1; i <= n; i++){
dp[i] = i; // 假设是最坏的情况,全部为1的平方和;
for(int j = 1; j*j <= i; j++){ //n的平方和数不会超过n的算术平方根,剪枝缩小搜索范围;
dp[i] = Math.min(dp[i], dp[i- j*j] + 1); // 动态转移方程;
}
}
return dp[n];
}
}
边栏推荐
- 快速排序及优化
- 力扣刷题14. 最长公共前缀
- 网络安全—综合渗透测试-CVE-2010-2883-PDF漏洞分析
- Miller gingival recession and mucogingival junction
- Tutorial on principles and applications of database system (033) -- data integrity of MySQL (VI): not NULL constraint
- cannot import name ‘import_string‘ from ‘werkzeug‘【bug解决】
- mim命令
- Harbor—镜像仓库
- 从表面上元宇宙和互联网的发展逻辑是相同的,但其实不然
- 中职网络安全技能大赛P100-Dcore(轻型CMS系统)SQL注入
猜你喜欢
归一化原来这么重要!深入浅出详解Transformer中的Normalization
中职网络安全—2022年国赛逆向PE Reverse解题思路
力扣刷题记录4-----69. x 的平方根
Dynamic memory management
Distribution rules of weights of binary neural networks
网络安全—综合渗透测试-CVE-2019-7238-Nexus远程代码执行
Unity:测试旋转 函数
LeetCode.1217. 玩筹码____简单贪心
Kubernetes Kube scheduler
Network security - comprehensive penetration test -cve-2019-15107-webmin remote code execution
随机推荐
VMware安装
acwing 868. 筛质数
自定义类型:结构体,枚举,联合
Network security comprehensive penetration test cve-2010-2883-pdf vulnerability analysis
Infraversion and superversion
数据库系统原理与应用教程(024)—— MySQL 修改数据表的结构
ViT【backbone】
Distribution rules of weights of binary neural networks
科赫曲线
力扣刷题61. 旋转链表
Tencent Chinese translation applet interface version (under study)
力扣刷题292. Nim 游戏
力扣刷题238.除自身以外数组的乘积
网络安全—综合渗透测试-CVE-2010-2883-PDF漏洞分析
数据库系统原理与应用教程(033)—— MySQL 的数据完整性(六):非空(NOT NULL)约束
力扣刷题记录2-----35.搜索插入位置
acwing 869. 试除法求约数
洛谷 P1678 烦恼的高考志愿
Summer vacation safety second assignment
Installation sequence of Yuhua Wanbao fan