LeetCode:完全平方数【279】【DP】

题目描述

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

示例 1:

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

示例 2:

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

题目分析

  动态规划真的是笔试过程中必不可少的题型。

  如果我们想知道n=15的方法数,我们可以转换为求n=14的方法数、n=11的方法数、n=6的方法数,然后他们中间取最小值+1,即是15的方法数。

  同样,n=14的方法数,是n=13、n=10、n=5中的最小值+1....这样我们可以使用动态规划来避免重复计算

  

Java题解

class Solution {public int numSquares(int n) {if(n<=0)return 0;int[] cntPerfectSquares = new int[n+1];Arrays.fill(cntPerfectSquares,Integer.MAX_VALUE);cntPerfectSquares[0]=0;for(int i=0;i<=n;i++){for(int j=1;j*j<=i;j++){cntPerfectSquares[i]=Math.min(cntPerfectSquares[i],cntPerfectSquares[i-j*j]+1);}}return cntPerfectSquares[n];}
}

  

转载于:https://www.cnblogs.com/MrSaver/p/9669185.html

LeetCode:完全平方数【279】【DP】相关推荐

  1. leetcode 279. 完全平方数(dp)

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

  2. 【LeetCode】279. 完全平方数 【动态规划】【四平方和定理】

    题目链接:https://leetcode-cn.com/problems/perfect-squares/ 题目介绍 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使 ...

  3. LeetCode Non-overlapping Intervals(dp,greedy)

    问题: 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠. 注意: 可以认为区间的终点总是大于它的起点.     区间 [1,2] 和 [2,3] 的边界相互"接触&quo ...

  4. LeetCode:Maximus Square(DP)

    Given a 2D binary matrix filled with 0's and 1's, find the largest square containing all 1's and ret ...

  5. LeetCode Maximal Rectangle(dp)

     Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing all ones ...

  6. Leetcode 279. 完全平方数

    Leetcode 279. 完全平方数 1.问题分析 2.问题解决 3.总结 1.问题分析 题目链接:https://leetcode-cn.com/problems/perfect-squares/ ...

  7. 279. 完全平方数 (数学定理 四平方数之和定理)

    LeetCode: 279. 完全平方数 这道题如果知道数学定理之后,相当于告诉你: 任何正整数都可以拆分成不超过4个数的平方和 -> 答案只可能是1,2,3,4 如果一个数最少可以拆成4个数的 ...

  8. LeetCode 70爬楼梯71简化路径72编辑距离(dp)

    新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注这个潇洒青年一起飞,回 ...

  9. LeetCode 热题 HOT 100 完整题解笔记知识点分类 C++代码实现

    1.知识点分布 填一下这个之前欠的天坑,复习一下算法入门的经典基础题. 除夕,正月初一,初二,一共写了三整天,除了吃饭就窝着补题. 每天30题+,整个人都写晕啦,终于写完啦() markdown生成 ...

  10. 【LeetCode】动态规划入门(专项打卡21天合集)

    [LeetCode]动态规划入门(专项打卡21天合集) 下图为证 文章目录 [LeetCode]动态规划入门(专项打卡21天合集) Day1 斐波拉契数 第 N 个泰波那契数 Day2 爬楼梯 使用最 ...

最新文章

  1. 安徽师范大学信息计算机学院,安徽师范大学数学计算机科学学院导师介绍:罗永龙...
  2. Eclipse执行import命令导入maven项目时报错:Add a version or custom suffix using Name template in Advanced set...
  3. mysql自动备份 linux_Linux下MySQL数据库自动定时备份
  4. vuejs知乎_vueJS (简版)amp; 响应式原理
  5. C-Free 5.0注册码分享
  6. IMAC 2011 MID免光驱安装WIN10
  7. Android Studio 导入modle是提示名称已存在
  8. C#实战012:Excel操作-获取Excel某一行数据并存入数组
  9. 游戏私服频繁被DDOS攻击怎么办
  10. x1 php168,新手快速入门教程
  11. python文件和数据格式化思维导图,思维导图:Numpy+Pandas
  12. RTSP实时音视频传输介绍
  13. PHP正则匹配全中文
  14. Java基础篇(集合)
  15. 北方互动:APP开发的具体流程
  16. python---做一个恶搞程序
  17. mysql 索引超767_mysql Index column size too large 超过767错误解决方案(转)
  18. 跳转到应用商城App详情页
  19. linux用mpi运行命令,linux mpirun命令
  20. 微软老照片AI修复开源代码运行错误

热门文章

  1. 计算机系统自带的文字处理程序,如何使用win7系统电脑的内置字符编辑程序
  2. PAT_1056_组合数的和(15)
  3. 又见n/i下取整+分块
  4. 最长回文子串manacher算法模板
  5. Flask报错RuntimeError: No application found. Either work inside a view function or push an applicatiio
  6. ALOHA simulaiton仿真结果及分析
  7. bzoj 1406: [AHOI2007]密码箱
  8. C - 二进制换十进制(简单)
  9. 1119 九九乘法表的值(%-4d等 的含义)
  10. 李开复:多次失败后,我总结出最优秀创业者的4个特点