Cover image for LeetCode Hot 100 P279 Perfect Squares

LeetCode Hot 100 P279 Perfect Squares


Timeline

Timeline

2026-03-20

init

Dynamic Programming

Problem:

Dynamic Programming

12345678910111213141516171819202122232425262728293031323334
#include <vector>using std::vector;class Solution {    public:        int numSquares(int n) // 12        {                int i, j;                vector<int> perfect_squares;                vector<int> dp(n + 1, n + 1);                for (i = 1; i * i <= n; i++)                        perfect_squares.push_back(i * i); // 1 4 9                dp[0] = 0;                for (i = 1; i <= n; i++) {                        for (j = 0; j < perfect_squares.size() && perfect_squares[j] <= i; j++)                                dp[i] = std::min(dp[i], dp[i - perfect_squares[j]] + 1);                }                return dp[n];        }};#include <cstdio>int main(){        Solution S;        int num = S.numSquares(12);        printf("%d\n", num);        num = S.numSquares(13);        printf("%d\n", num);}
Loading comments…