思路展示

LeetCode---279. 完全平方数(动态规划)_示例代码

示例代码

class Solution {
public:
    int numSquares(int n) {
        vector<int> dp(n+1,INT_MAX);
        //实际上我们无法表示数字 0,只是为了保证状态转移过程中遇到 j 恰为i^1/2的情况合法。
        dp[0]=0;
        for(int i=1;i<=n;i++){
            //j的平方不能超过i
            for(int j=1;j*j<=i;j++){
                //位置i只依赖于i-k^2   
                dp[i]=min(dp[i],dp[i-j*j]+1);
            }
        }
        return dp[n];
    }
};
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

效果展示

LeetCode---279. 完全平方数(动态规划)_leetcode_02

相似题目

 139. 单词拆分