124.Perfect Squares
2016-05-10 15:08
281 查看
Given a positive integer n, find the least number of perfect square numbers (for example,
For example, given n =
Credits:
Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
Subscribe to see which companies asked this question.
给定一个正整数,求该正整数可以被被分解成完全平方数的个数。
For example, given n = 12, return 3 because 12 = 4 + 4 + 4; given n = 13, return 2 because 13 = 4 + 9.
采用动态规划的思想。
如果n为完全平方数,则f
=1;
否则f(n) = min{f(k)+f(n-k)},1<=k<=n/2
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.
Credits:
Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.
Subscribe to see which companies asked this question.
给定一个正整数,求该正整数可以被被分解成完全平方数的个数。
For example, given n = 12, return 3 because 12 = 4 + 4 + 4; given n = 13, return 2 because 13 = 4 + 9.
采用动态规划的思想。
如果n为完全平方数,则f
=1;
否则f(n) = min{f(k)+f(n-k)},1<=k<=n/2
/** * 给定一个正整数,求该正整数可以被被分解成完全平方数的个数。 * For example, given n = 12, return 3 because 12 = 4 + 4 + 4; given n = 13, return 2 because 13 = 4 + 9. * 采用动态规划的思想。 * 如果n为完全平方数,则f =1; * 否则f(n) = min{f(k)+f(n-k)},1<=k<=n/2 * @date 20160510 * @param n * @return */ public int numSquares(int n) { if(n == 1){ return 1; } int f[] = new int[n+1];//f[i]表示给定i时其对应的符合条件的完全平方数个数。 f[1]=1; for(int i=2;i<=n;i++){ /*首先判断是否为一个完全平方数*/ double y = Math.sqrt(i); if( y - (int)y == 0){ f[i] = 1; continue; } /*不为完全平方数时*/ f[i] = f[1]+f[i-1]; for(int k=2;k<=i/2;k++){ if(f[k]+f[i-k]<f[i]){ f[i] = f[k]+f[i-k]; } } } return f ; }
相关文章推荐
- What’s the difference between machine learning, statistics, and data mining?
- 【S2HS学习笔记】第二章节:JSP/Servlet及相关技术详解
- 织梦模板安装后不能显示css的解决办法
- 怎么样把bootstrap扔进django里
- jquery中如何使用event.target
- AFNetworking报错"_UTTypeCopyPreferredTagWithClass", referenced from: _AFContentTypeForPathExtens
- BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
- JSON解析-系统方法和第三方JSONKit的简单实用
- js节点操作
- JS实现登录页面记住密码和enter键登录方法推荐
- 详解JavaScript中的自定义事件编写
- angular controller不执行
- jquery事件冒泡
- 页面显示动态时间
- javascript中attribute和property的区别详解
- grunt concat针对有依赖文件的js脚本的合并
- d3.js——饼状图的拖拽
- 最简化模型2——css3分阶段动画效果(经过实测)之转动的div
- CSS清楚浮动float
- 【JS 设计模式 】门面模式之DOM元素绑定事件