Perfect Squares

原创 2016年08月29日 11:16:32

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.

Credits:

Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.

思路:dp,我写的是recursion + memorization版本;其实这题就类似于coin change。只不过,coin change的问题,是固定的硬币,现在这个是小于n的所有可能的平方数的解。like: n = 10, coin 就是1,4,9.

此题用的是沁园老师的recursion + memorization的解法。自己写出来的,很开心。

public class Solution {
    public int numSquares(int n) {
        if(n<=0) return -1;
        int[] dp = new int[n+1];
        Arrays.fill(dp,-1);
        calculate(n, dp);
        return dp[n];
    }
    
    public int calculate(int n, int[] dp) {
        if(n<=0) return 0;
        if(dp[n] != -1){
            return dp[n];
        }
        
        int val = Integer.MAX_VALUE;
        for(int i=1; i<=Math.sqrt(n); i++){
            val = Math.min(val, calculate(n-i*i, dp) + 1);
        }
        dp[n] = val;
        return dp[n];
    }
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

leetcode 279: Perfect Squares

Perfect Squares Total Accepted: 605 Total Submissions: 1956 Given a positive ...
  • xudli
  • xudli
  • 2015年09月10日 06:03
  • 8338

[LeetCode 279] Perfect Squares

Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, ...
  • sbitswc
  • sbitswc
  • 2015年09月18日 13:11
  • 3199

LeetCode(279)Perfect Squares

题目Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9,...
  • fly_yr
  • fly_yr
  • 2015年11月29日 14:50
  • 1761

leetcode 279. Perfect Squares-完美平方数|动态规划

原题链接:279. Perfect Squares 【思路-Java】 采用动态规划实现。用 dp[i] 数组存储第 i 个数的完美平方数。递推式为:dp[i] = Math.max(dp[j] + ...
  • happyaaaaaaaaaaa
  • happyaaaaaaaaaaa
  • 2016年06月04日 17:14
  • 3614

[leetcode-279]Perfect Squares(java)

问题描述: Given a positive integer n, find the least number of perfect square numbers (for example, 1, ...
  • zdavb
  • zdavb
  • 2015年09月25日 08:16
  • 961

LeetCode-279. Perfect Squares | (JAVA) (完美平方数)

279. Perfect Squares Given a positive integer n, find the least number of perfect square numbers (f...
  • mine_song
  • mine_song
  • 2017年04月13日 19:14
  • 239

LeetCode--279. Perfect Squares(完美平方)Python

题目: 给定一个正整数n,一定存在若干整数平方和为该正整数,求满足该条件的最小整数个数。平方数为(1,4,9,16......),使其和为n。例如给定n=12,则返回3,因为12=4+4+4;给定n...
  • xiaoxiaoley
  • xiaoxiaoley
  • 2018年01月02日 17:01
  • 66

279 Perfect Squares

题意:定义perfect squares number 为(1,4,9,16,...) 给出一个正整数n,返回和为n的最小的perfect squares number 的数目。 例如:n=12 ,...
  • scutwjh
  • scutwjh
  • 2015年09月10日 10:11
  • 1492

279.Perfect Squares

思路:动态规划。 class Solution { public:     int numSquares(int n) {         //判错         if(n       ...
  • wscdylzjy
  • wscdylzjy
  • 2015年10月16日 13:15
  • 316

914A Perfect Squares

题意:输入一个n然后,然后输入n个数,范围是-1e6到1e6,找出最大的一个不是完全平方数的数。输出。 题解:模拟  我先预处理出来1到1e3次方的完全平方数,然后一次从输入的n个数一次去在a数组里面...
  • memory_qianxiao
  • memory_qianxiao
  • 2018年01月21日 15:55
  • 29
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Perfect Squares
举报原因:
原因补充:

(最多只允许输入30个字)