Leetcode:279Perfect Squares
2015-09-11 18:54
411 查看
题目出处:Leetcode:279Perfect Squares
题目描述:
Given a positive integer n, find the least number of perfect square numbers (for example,
For example, given n =
翻译很简单,此处不再赘述。
这是一个dp问题(动态规划问题)动态公式:dp[i + j * j] = min(dp[i] + 1,dp[i + j * j ]);
已通过系统的代码:
public class Solution {
public int numSquares(int n) {
int[] squ = new int[n + 1];
for(int i = 1;i*i <=n ; i++)
squ[i*i] = 1;
for(int j = 1,k = 1; j + k * k <= n;j++){
for(;j + k * k <= n;k++){
if((squ[j + k * k] == 0)||squ[j+k*k]>(squ[j]+1))
squ[j + k * k] = squ[j] + 1;
}
k = 1;
}
return squ
;
}
}
题目描述:
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
3because
12 = 4 + 4 + 4; given n =
13, return
2because
13 = 4 + 9.
翻译很简单,此处不再赘述。
这是一个dp问题(动态规划问题)动态公式:dp[i + j * j] = min(dp[i] + 1,dp[i + j * j ]);
已通过系统的代码:
public class Solution {
public int numSquares(int n) {
int[] squ = new int[n + 1];
for(int i = 1;i*i <=n ; i++)
squ[i*i] = 1;
for(int j = 1,k = 1; j + k * k <= n;j++){
for(;j + k * k <= n;k++){
if((squ[j + k * k] == 0)||squ[j+k*k]>(squ[j]+1))
squ[j + k * k] = squ[j] + 1;
}
k = 1;
}
return squ
;
}
}
相关文章推荐
- AngularJS进阶(五)Angular实现下拉菜单多选
- AngularJS进阶(五)Angular实现下拉菜单多选
- AngularJS进阶(四)ANGULAR.JS实现下拉菜单单选
- AngularJS进阶(四)ANGULAR.JS实现下拉菜单单选
- 老式浏览器兼容html5 css3
- AngularJS进阶(三)HTML:让表单、文本框只读,不可编辑的方法
- AngularJS进阶(三)HTML:让表单、文本框只读,不可编辑的方法
- chrome console js多行输入
- NodeJS调试工具 — node-inspector
- Effective C++ 条款44 将与参数无关的代码抽离template
- js数据放入cookie、从cookie取cookie
- NodeJS热部署工具 — supervisor
- 8,了解HTML的代码注释
- 6,认识html中的head标签
- JS实现仿QQ面板的手风琴效果折叠菜单代码
- JS实现仿Windows7风格的网页右键菜单效果代码
- js 获取昨天、今天、明天的时间
- Populating Next Right Pointers in Each Node
- jQuery EasyUi实现tab页
- PlanNode enNode = PlanNode.withCityNameAndPlace可以搜到结果但PlanNode enNode = PlanNode.withLocation()却搜不到