news 2026/4/16 9:05:22

LeetCode--279. 完全平方数--中等

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode--279. 完全平方数--中等

题目

给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。

完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。

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

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

题解

classSolution{publicintnumSquares(intn){int[]dp=newint[n+1];// 默认初始化值都为0for(inti=1;i<=n;i++){dp[i]=i;// 最坏的情况就是每次+1for(intj=1;i-j*j>=0;j++){dp[i]=Math.min(dp[i],dp[i-j*j]+1);// 动态转移方程}}returndp[n];}}

解析

出自:画解算法:279. 完全平方数

classSolution{publicintnumSquares(intn){// 创建一个长度为 n+1 的 dp 数组,dp[i] 表示组成整数 i 所需的最少完全平方数个数int[]dp=newint[n+1];// 默认初始化值都为 0(Java 中 int 数组默认初始化为 0)// 从 1 遍历到 n,依次计算每个数字 i 的最小平方数组合数for(inti=1;i<=n;i++){// 初始化 dp[i] 为最坏情况:i 由 i 个 1 相加而成(因为 1 是完全平方数)dp[i]=i;// 例如:5 = 1+1+1+1+1 → 共 5 个// 尝试所有可能的完全平方数 j*j(j 从 1 开始)for(intj=1;i-j*j>=0;j++){// 状态转移方程:// 如果用 j*j 作为其中一个平方数,那么剩下的部分是 i - j*j,// 所需的最少个数就是 dp[i - j*j] + 1(+1 表示加上当前的 j*j)// 取所有可能 j 中的最小值dp[i]=Math.min(dp[i],dp[i-j*j]+1);}}// 返回组成 n 所需的最少完全平方数个数returndp[n];}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 9:02:35

别让孩子过早近视,防控近视有“帮手”

当下孩子近视低龄化趋势愈发明显&#xff0c;不少小学低年级甚至幼儿园孩子就出现了近视苗头&#xff0c;过早近视不仅会影响孩子当下的视物清晰度&#xff0c;还可能随着年龄增长逐步加深度数&#xff0c;给后续学习、生活乃至未来择业都带来潜在影响。家长们对孩子近视防控愈…

作者头像 李华
网站建设 2026/4/15 20:50:15

躲过了手机没躲过它,孩子因为什么变成近视,家长真的知道吗?

在电子产品管控日益严格的当下&#xff0c;很多家长都有这样的困惑&#xff1a;明明已经限制了孩子玩手机、看平板的时间&#xff0c;可孩子的近视度数还是不断攀升&#xff0c;甚至刚上小学就戴上了眼镜。一、被忽视的用眼隐患&#xff1a;不止是电子产品&#xff0c;还有学习…

作者头像 李华
网站建设 2026/4/15 13:38:00

Python 字符串反转方法

使用字符串切片&#xff1a; 定义一个字符串变量&#xff0c;例如 str “Runoob”。 使用切片语法 [::-1] 反转字符串&#xff0c;例如 reversed_str str[::-1]。 使用 reversed() 函数&#xff1a; 定义一个字符串变量&#xff0c;例如 str “Runoob”。 调用 reversed() …

作者头像 李华
网站建设 2026/4/16 9:04:25

1.1 Python的前世今生

文章目录前言一、Python的前世二、Python的今生三、Python的文化影响总结前言 Python是一门高级、解释型、通用的编程语言&#xff0c;由荷兰程序员吉多范罗苏姆&#xff08;Guido van Rossum&#xff09;于1989年圣诞节期间开始设计&#xff0c;1991年首次发布。它的设计哲学…

作者头像 李华
网站建设 2026/4/12 22:39:43

2.1 变量与数据类型

文章目录 一、 变量的命名规则与赋值二、 基本数据类型三、 类型查看与转换四、 注释的写法 一、 变量的命名规则与赋值 变量就像一个贴了标签的盒子&#xff0c;用于存放数据。 命名规则 (必须遵守)&#xff1a; 只能包含字母、数字和下划线 _ 不能以数字开头&#xff08;例如…

作者头像 李华
网站建设 2026/4/14 22:16:32

21、将应用推向Windows应用商店的全面指南

将应用推向Windows应用商店的全面指南 在当今数字化的时代,将应用推向应用商店是开发者实现其作品价值的重要途径。对于Windows 8应用开发者来说,将应用提交到Windows应用商店的过程需要遵循一系列明确的步骤。下面我们就来详细了解一下这个过程。 一、加密相关处理 如果应…

作者头像 李华