LeetCode Perfect Squares DP
2015-11-16 22:19
393 查看
思路:
DP。
设
时间复杂度O(N^2) ,空间复杂度 O(N)。
java code:
DP。
设
dp[i]表示当
n等于
i时需要的最少的平方个数,i可以表示成 a + b * b,那么就可以建立递推方程:
dp[a + b * b] = min(dp[a] + 1, dp[a + b * b]);
时间复杂度O(N^2) ,空间复杂度 O(N)。
java code:
public class Solution { public int numSquares(int n) { int[] dp = new int[n + 1]; //init dp Arrays.fill(dp, Integer.MAX_VALUE); for(int i = 0; i * i <= n; ++i) { dp[i * i] = 1; } //construct dp for(int a = 0; a <= n; ++a) { for(int b = 0; a + b * b <= n; ++b) { dp[a + b * b] = Math.min(dp[a] + 1, dp[a + b * b]); } } return dp ; } }
相关文章推荐
- String对象和StringBuffer对象末尾追加元素空间效率问题
- js中with、this的用法
- javascript中代码的优化(1)
- JavaScript学习随记——Function
- CSS制作水平垂直居中对齐
- CSS制作水平垂直居中对齐
- JavaScript和JQuery和angularjs操作select
- seajs模块加载
- [Err] 1222 - The used SELECT statements have a different number of columns
- jquery 使用方法
- html5学习(1)
- CSS定位的兼容性问题
- JS正则表达式
- jquery 自制广告轮播小插件
- 南大软院大神养成计划--第一天学习HTML+CSS的基础归纳
- 南大软院大神养成计划--html css基础
- js和jquery获取父级元素、子级元素、兄弟元素的方法
- js-案例:下拉列表左右选择分析
- Extjs-4.2.1(一)——编辑 hello word
- CSS-div高度100%设置问题