当前位置: 首页 > java >正文

【Hot 100】279. 完全平方数

目录

  • 引言
  • 完全平方数
    • 我的解题
    • dp总结

请添加图片描述

  • 🙋‍♂️ 作者:海码007
  • 📜 专栏:算法专栏
  • 💥 标题:【Hot 100】279. 完全平方数
  • ❣️ 寄语:书到用时方恨少,事非经过不知难!

引言

今天又是dp的题目,算法题做多了才会有自己的感悟。dp的题目就是和之前数学里面求数列的第n项的表达式一样。就是找出这个第n项的规律。dp也是这样,当前的状态由前面的状态决定(可能是前面一种状态,也可能是前面几种状态)。dp核心的地方就是找出这个状态转移方程。

完全平方数

  • 🎈 题目链接:
  • 🎈 做题状态:

我的解题

感悟了半天,发现自己找不到状态转移方程,尴尬了。

好了,看了一遍题解知道大概的思路了,先定义一下 dp[i] 表示和为 i 的完全平方数的最少数量。 完全平方数可能得组成在区间 [1, √i ] 之间,所以需要遍历这个区间的每个数。在遍历第一个数时,则另一个数就是 i-1^2 ,所以这个问题就变成了计算 dp[i-1^2] 这个数值的问题。然后在循环中 int j = 1 循环到 √i 即可计算, dp[i] = 1 + dp[i - j * j];

class Solution {
public:int numSquares(int n) {// 返回和为n的完全平方数的最少数量vector<int> dp(n+1);dp[0] = 0;dp[1] = 1;for (int i = 2; i <= n; ++i){// 找出最小值int minValue = INT_MAX;// 从1循环到√ifor (int j = 1; j * j <= i; ++j){minValue = min(minValue, dp[i - j*j]);}dp[i] = minValue + 1;}return dp[n];}
};

dp总结

  1. DP 三要素的完整框架

    状态定义:明确 dp[i] 的具体含义(如您的定义:dp[i] 表示和为 i 的最小完全平方数数量)。

    转移方程:如何从子问题推导当前问题(如 dp[i] = min(dp[i - j²] + 1))。

    初始条件:边界值的处理(如 dp[0] = 0,dp[1] = 1)。

  2. DP 的两种实现方式

    自顶向下(记忆化搜索):递归 + 备忘录,适合问题结构不直观时。

    自底向上(迭代填表):您的代码采用的方式,更高效且避免递归开销。

  3. 常见 DP 类型

    线性 DP(如斐波那契、爬楼梯)。

    背包问题(0-1 背包、完全背包——完全平方数本质是完全背包)。

    区间 DP(如矩阵链乘法)。

    树形 DP(在树结构上动态规划)。

http://www.xdnf.cn/news/10718.html

相关文章:

  • PopupImageMenuItem 无响应
  • AXURE-动态面板
  • 最优包含--字符串dp
  • 解锁技术文档撰写秘籍:从混沌到清晰的蜕变之旅
  • 帝可得 - 策略管理
  • 利用Python 进行自动化操作: Pyautogui 库
  • SQL注入漏洞-上篇
  • 正点原子lwIP协议的学习笔记
  • xmake的简易学习
  • CppCon 2014 学习:Cross platform GUID association with types
  • 蛋白质设计软件LigandMPNN介绍
  • 宇树科技更名“股份有限公司”深度解析:机器人企业IPO前奏与资本化路径
  • R1-Searcher++新突破!强化学习如何赋能大模型动态知识获取?
  • 职坐标IT培训:嵌入式开发C语言/硬件/RTOS路径
  • 时代星光推出战狼W60智能运载无人机,主要性能超市场同类产品一倍!
  • NLP实战(5):基于LSTM的电影评论情感分析模型研究
  • BugKu Web渗透之源代码
  • C++ stl容器之string(字符串类)
  • .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
  • 利用 Scrapy 构建高效网页爬虫:框架解析与实战流程
  • 2022年 国内税务年鉴PDF电子版Excel
  • centos安装locate(快速查找linux文件)
  • 【QT】QString 与QString区别
  • Qt 仪表盘源码分享
  • docker 中 什么是「卷」?(Volume)
  • 使用Composer创建公共类库
  • 国产高云FPGA实现视频采集转UDP以太网输出,FPGA网络摄像头方案,提供2套Gowin工程源码和技术支持
  • 负载均衡相关基本概念
  • 【Axure高保真原型】交通事故大屏可视化分析案例
  • 【知识点】第4章:程序控制结构