279. Perfect Squares

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.
public class Solution {
    public int numSquares(int n) {
        int dp[] = new int[n+1];
        dp[0] = 0;
        for(int i = 1; i<=n; i++){
            dp[i] = Integer.MAX_VALUE;
            for(int j = 1; j*j<=i ;j++ ){
                if(dp[i] > dp[i - j*j] + 1){
                    dp[i] = dp[i-j*j] + 1;
                }
            }
        }
        return dp[n];
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,788评论 0 33
  • Given a positive integer n, find the least number of perf...
    matrxyz阅读 186评论 0 0
  • 第二天六点四十,米勒准时起床,准备儿子和自己的早饭。在等着蔬菜瘦肉粥出锅的空档,米勒依在冰箱门上望着窗外发呆。晨曦...
    木鱼78阅读 302评论 4 2
  • 你羡慕那些说话、做事自然而成熟,毫不胆怯的人,就像QH姐那样的人。 QH姐是我心中的太阳女神,是我们课题组的担当学...
    九月凡阅读 401评论 0 3
  • 背景 目前iOS开发团队使用模块化开发方案进行,一个项目大抵包含了一二十个子模块。代码用SVN进行管理,每个子模块...
    Koson阅读 1,652评论 0 2