动态规划中级教程 279. Perfect Squares
来源:互联网 发布:cf卡海豹突击队软件 编辑:程序博客网 时间:2024/06/06 05:22
Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, ...
) which sum to n.
For example, given n = 12
, return 3
because 12 = 4 + 4 + 4
; given n = 13
, return 2
because 13 = 4 + 9
.
我们知道这个一眼可以看到
dp【8】=dp【4】+1(因为8-4)也是一个完全平方数
我们这里直接列状态转移方程
dp【i】=min(dp【i】,dp【i-j*j】)
class Solution {public: int numSquares(int n) { if(n<=0)return 0; int num=sqrt(n); int dp[n+1]; memset(dp,0,sizeof(dp)); for(int i=1;i<=num;i++) { dp[i*i]=1; } for(int i=1;i<=n;i++) { for(int j=1;j<=num;j++) { if(i-j*j>0) { if(dp[i-j*j]) { if(dp[i]==0) { dp[i]=dp[i-j*j]+1; } else { dp[i]=min(dp[i],dp[i-j*j]+1); } } } } } return dp[n]; }};
阅读全文
0 0
- 动态规划中级教程 279. Perfect Squares
- 动态规划-279. Perfect Squares
- LeetCode 279. Perfect Squares--动态规划
- LeetCode Perfect Squares(动态规划)
- leetcode 279. Perfect Squares-完美平方数|动态规划
- Perfect Squares——动态规划
- 动态规划中级教程 322. Coin Change
- 动态规划中级教程 343. Integer Break
- 动态规划中级教程91. Decode Ways
- 279.Perfect Squares
- [leetcode] 279. Perfect Squares
- 279. Perfect Squares
- 279. Perfect Squares LeetCode
- leetcode 279. Perfect Squares
- leetcode 279. Perfect Squares
- [LeetCode]279. Perfect Squares
- 279. Perfect Squares
- 279. Perfect Squares
- Java基础之Java概述
- 小白成长记——Java基础之访问控制符
- POJ 3279 Fliptile——开关问题
- 最少转弯问题
- @ResponseBody 无法将实体类传回页面 详解
- 动态规划中级教程 279. Perfect Squares
- DAY49 CSS基础1
- mac Python 图形用户界面学习
- iframe 子页面与父页面通信
- HDU-1532(网络最大流)
- IO流——利用字节流复制图片
- 获取客户端真实IP
- 断路器(Hystrix)
- 浅谈单例设计模式探索