题解:Perfect Squares

来源:互联网 发布:征途 巨人网络 编辑:程序博客网 时间:2024/06/13 19:06

题目如下:

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.

解决代码如下(动态规划):

int numSquares(int n) {        vector<int> result(n + 1, 0);        for (int i = 0; i <= n; i++) {            result[i] = i;            for (int l = 2; l <= sqrt(i); l++) {            if (result[i] > result[i - l * l] + 1)            result[i] = result[i - l * l] + 1;        }            }        return result[n];}


0 0
原创粉丝点击