279 Perfect Squares
Problem:
Solutions:
public class Solution {
private HashMap<Integer, Integer> data = new HashMap<Integer, Integer>();;
public int numSquares(int n) {
if (data.containsKey(n)) {
return data.get(n);
}
int up = (int)(Math.sqrt(n));
if (up * up == n) {
data.put(n, 1);
return 1;
}
int min = Integer.MAX_VALUE;
for (int i = up; i > 0; i --) {
int tmp = 1 + numSquares(n - i * i);
min = Math.min(min, tmp);
}
data.put(n, min);
return min;
}
}Last updated