力扣279. 完全平方数

动态规划

  • 思路:
    • 假设 dp[i] 为最少组成数 i 的平方数个数;
    • 则其上一个状态为 dp[i - j^2] + 1,1 为 j^2:
      • 即 i 的最少完全平方数 = i - j^2 的最少完全平方数 + 1,其中 j^2  <= i 为最接近 i 的平方数;
    • 初始值:dp[0] = 0
    • 所以,可以通过动态规划算出每一个 dp[i]
class Solution {
public:
    int numSquares(int n) {
        std::vector<int> dp(n + 1);
        dp[0] = 0;
        for (int i = 1; i <= n; ++i) {
            int minn = INT_MAX;
            for (int j = 1; j * j <= i; ++j) {
                minn = std::min(minn, dp[i - j * j]);
            }

            dp[i] = minn + 1;
        }

        return dp[n];
    }
};

——————————————————————————————

相关推荐

  1. 279完全平方

    2024-01-24 12:32:04       34 阅读
  2. 279. 完全平方

    2024-01-24 12:32:04       27 阅读
  3. 279. 完全平方

    2024-01-24 12:32:04       39 阅读
  4. 279. 完全平方

    2024-01-24 12:32:04       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-24 12:32:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-24 12:32:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-24 12:32:04       82 阅读
  4. Python语言-面向对象

    2024-01-24 12:32:04       91 阅读

热门阅读

  1. Vue nextTick使用场景及实现原理

    2024-01-24 12:32:04       49 阅读
  2. 2.docker client

    2024-01-24 12:32:04       45 阅读
  3. 数据库(SQL语句:DML&&DQL)

    2024-01-24 12:32:04       44 阅读
  4. R语言【taxa】——taxa包中的类

    2024-01-24 12:32:04       53 阅读
  5. Matlab之对复数使用函数real和abs的区别

    2024-01-24 12:32:04       56 阅读
  6. R语言【taxa】——从taxa 定义的类中获取组分信息

    2024-01-24 12:32:04       50 阅读
  7. 计算机网络中的网络地址转换

    2024-01-24 12:32:04       54 阅读
  8. 第8章-网络设备文件管理

    2024-01-24 12:32:04       52 阅读
  9. 27.【TypeScript 教程】迭代器(Iterator)

    2024-01-24 12:32:04       56 阅读
  10. php正则电话号

    2024-01-24 12:32:04       56 阅读