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

示例 1:

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

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

思路:动态规划

使用dp的重点在于递推式:

f(i)=1+min{f(i-1*1),f(i-2*2),...,f(i-k*k)} k为小于i的最大完全平方数

凑成数值i的最少平方数的个数 = 凑成数值i-x*x的最少平方数的个数 + 1,其中x范围为i-x*x>=0

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

完全平方数—leetcode279相关推荐

  1. 【代码随想录】-动态规划专题

    文章目录 理论基础 斐波拉契数列 爬楼梯 使用最小花费爬楼梯 不同路径 不同路径 II 整数拆分 不同的二叉搜索树 背包问题--理论基础 01背包 二维dp数组01背包 一维数组(滚动数组) 装满背包 ...

  2. Leetcode279:完全平方数

    Leetcode279:完全平方数 题目: 给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 . 完全平方数 是一个整数,其值等于另一个整数的平方:换句话说,其值等于一个整数自乘的积.例如, ...

  3. Leetcode279完全平方数(工商银行面试题):广度优先搜索.md

    类似的题目参考: ES6广度优先搜索:最长回文字符串leetcode5.md 背景 今天做LeetCode的时候,偶尔翻看了一下题目所属的企业,发现有工商银行.作为一个在工商银行软件开发中心工作过10 ...

  4. leetcode279. 完全平方数

    一:题目 二:上码 class Solution {public:/**思路:1.分析题意这个就是将一个数分成几个数的和;然而的话,这几个数必须的是完全平方数,我们要求的是最少数量的完全平方数这个满足 ...

  5. leetcode279. 完全平方数(动态规划)

    给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, -)使得它们的和等于 n.你需要让组成和的完全平方数的个数最少. 示例 1: 输入: n = 12 输出: 3 解释: 12 = ...

  6. leetcode279 完全平方数

    给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n.你需要让组成和的完全平方数的个数最少. 示例 1: 输入: n = 12 输出: 3  解释: 12 ...

  7. Leetcode--279. 完全平方数

    给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n.你需要让组成和的完全平方数的个数最少. 示例 1: 输入: n = 12 输出: 3  解释: 12 ...

  8. leetcode279——完全平方数——java实现

    题目要求: 分析: 这道题利用动态规划来做,参考了一位大神的博客,传送门:LeetCode 279. Perfect Squares 我们创建一个长度为n + 1的数组dp表示最少的完全平方数,则可以 ...

  9. [C++]Leetcode279.完全平方数

    279.完全平方数 题目:给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, -)使得它们的和等于 n.你需要让组成和的完全平方数的个数最少. 示例 1: 输入: n = 12 输出 ...

最新文章

  1. linux shell #[感叹号]/bin/bash 是什么意思?
  2. SpringBoot系列:Spring Boot集成定时任务Quartz
  3. 防止SQL SERVER的事件探查器跟踪软件
  4. 前端学习(2533):mapgetter和actions
  5. 回溯算法(Backtracking Algorithm)之八皇后问题
  6. php output_add_rewrite_var
  7. java乱码问题详解-值得收藏
  8. 关于android集成开发环境-引入jar包错误的问题
  9. php post 302,php – Laravel 5.2 Post 302重定向到GET
  10. 南方科技大学计算机系师资,于仕琪 - 教师个人主页 - 南方科技大学
  11. ftp下载工具 免费,7大值得推荐的免费版ftp下载工具
  12. 用html和css制作日历,CSS3制作日历
  13. 关于python3的input函数和int()强制转换
  14. hbase 使用lzo_装配HBase LZO
  15. 驱动工程师面试题汇编
  16. Splay 总结基础精华
  17. 判断系统是centos还是ubuntu的linux命令
  18. 大学计算机基础实验指导第一章答案,(教材)大学计算机基础实验指导与习题解答...
  19. Speex 一个开源的声学回声消除器(Acoustic Echo Cancellation)
  20. 【字符串】PTA试题——敲笨钟(20分)

热门文章

  1. adsl拨号无公网地址如何用ddns_【好玩的网络-第5期】分享自编ddns程序,17行代码轻松实现免费ddns,服务器或nas玩家的福音...
  2. 2016年第一堂课课后作业1
  3. python中迭代器和生成器的区别
  4. 通过JAVA对HDFS进行操作管理插件
  5. react——一个todolist的demo
  6. .net core 集成 autofac.
  7. js如何判断一个对象是不是Array
  8. extjs之TypeError: d.read is not a function解决方案
  9. [原创 URL重写步骤
  10. PowerSploit脚本