题目描述

给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。

示例 1:

输入: n = 12
输出: 3
解释: 12 = 4 + 4 + 4.

示例 2:

输入: n = 13
输出: 2
解释: 13 = 4 + 9.

解题思路

利用动态规划思想解题,初始化dp数组令小于n的完全平方数为1,从1到n遍历求解最小组成个数,再对每个数遍历小于其的所有完全平方数,最小组成个数的状态转移方程为:

dp[i] = min(dp[i], dp[i - j * j] + 1)

代码

 class Solution {
public:
int numSquares(int n) {
vector<int> dp(n + , INT_MAX);
for(int i = ; i * i <= n; i++)
dp[i * i] = ;
for(int i = ; i <= n; i++)
for(int j = ; j * j < i; j++)
dp[i] = min(dp[i], dp[i - j * j] + );
return dp[n];
}
};

最新文章

  1. Angular2 Hello World 之 2.0.0-beta.14
  2. git学习:关于origin和master
  3. AVL树(二)之 C++的实现
  4. 【Nginx】上传文件的大小限制
  5. 【LeetCode 201】Bitwise AND of Numbers Range
  6. 2016031901 - ubuntu15.1安装驱动
  7. struts2中的action访问web对象
  8. ThreadPool
  9. 简单的OC程序
  10. [bzoj4828][Ah/Hnoi2017]大佬
  11. Spring从认识到细化了解
  12. 穷举,迭代,while循环
  13. [P1034][NOIP2001]一元三次方程求解 (二分)
  14. sql2012包含数据库,快速生成用户tsql脚本
  15. Win10 1803 Spring Creators update Consumer edition的版本记录
  16. mybatis oracle -批量插入,存在则更新
  17. linux内核入门(1)——基本简介和编译
  18. AutoMapper queryable extensions 只找需要的字段
  19. 【20181031T2】几串字符【数位DP思想+组合数】
  20. iOS error: -34018

热门文章

  1. 利用axis调用webservice接口
  2. 如何使用jMeter发送两个逻辑上相关的HTTP请求
  3. spring 整合mongodb报NoSuchMethodError错误
  4. db2 with用法
  5. sed原理及sed命令格式 ,缓存区,模式空间
  6. linux下搭建redis内网端口映射工具-rinetd
  7. [CodeForces 160A] Twins
  8. 树的总结(遍历,BST,AVL原型,堆,练习题)
  9. 异步函数Demo
  10. 如何将html页面导出word格式?