您的位置:首页 > Web前端

[LeetCode]279. Perfect Squares

2016-03-03 13:38 232 查看

Problem Description

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.

[]https://leetcode.com/problems/perfect-squares/]

思路

DP!!!

numSquares
=min(numSquares(n-i*i),…………..,numSquares(n-1*1));

就酱

Code

package q279;

public class Solution {

public static int numSquares(int n) {
if(n==0) return 0;
int[] numSq=new int[n+1];
for(int i=1;i<=n;i++){
numSq[i]=i;
for(int j=1;j<=Math.sqrt(i);j++){
numSq[i]=Math.min(numSq[i-j*j]+1,numSq[i]);
}
}
return numSq
;
}

//  public static void main(String[] args) {
//      // TODO Auto-generated method stub
//      System.out.println(numSquares(4 ));
//  }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode