[Leetcode] Perfect Squares

来源:互联网 发布:wav格式录音软件 编辑:程序博客网 时间:2024/05/16 05:31

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[] record = new int[n+1];        Arrays.fill(record, Integer.MAX_VALUE);                record[0] = 0;        for(int i = 1; i*i <= n; i++){            record[i*i] = 1;        }                for(int i = 1; i <= n; i++){            for(int j = 1; i - j*j >= 0; j++){                record[i] = Math.min(record[i], record[i - j*j] + 1);            }        }                return record[n];    }}


0 0
原创粉丝点击