LeetCode 279. 完全平方数

【阿里云大模型高级工程师ACP习题集】2.9 大模型应用生产实践(下篇) 【摘要】这是我精心整理出对应的习题集,里面足足有 30 道题目,从基础概念到深度拓展,全方位覆盖章节重点、难点。不管你是想检验自己的学习成果,还是想针对薄弱环节进行强化训练,它都能完美适配! 阅读详情

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

示例 1:

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

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

法1: 动态规划,时间复杂度O(n*sqrt(n)), 空间复杂度O(n)

class Solution {
public:
    int numSquares(int n) {
        vector<int> dp(n+1, 0);
        vector<int> mults;
        int i = 1;
        while(i*i <= n) {
            mults.push_back(i*i);
            i++;
        }
        for (int i = 1; i <= n; i++)
        {
            int min_nums = i+1;
            for (int j = 0; j < mults.size() && i >= mults[j]; j++)
            {
                min_nums = min(min_nums, dp[i - mults[j]] + 1 );
            }
            dp[i] = min_nums;
        }
        return dp[n];
    }
};

法2:数学方法, 时间复杂度:O(sqrt(n)), 空间复杂度O(1).

class Solution {

  protected boolean isSquare(int n) {
    int sq = (int) Math.sqrt(n);
    return n == sq * sq;
  }

  public int numSquares(int n) {
    // four-square and three-square theorems.
    while (n % 4 == 0)
      n /= 4;
    if (n % 8 == 7)
      return 4;

    if (this.isSquare(n))
      return 1;
    // enumeration to check if the number can be decomposed into sum of two squares.
    for (int i = 1; i * i <= n; ++i) {
      if (this.isSquare(n - i * i))
        return 2;
    }
    // bottom case of three-square theorem.
    return 3;
  }
}


【编号326】全国地灾数据全国25万多个地质灾害点空间分布数据 全国地质灾害点分布数据涵盖25万多个各类灾害点信息,为灾害防治提供重要依据。通过分析灾害分布规律,可识别高风险区,指导监测预警、应急避险和基础设施建设。多地成功案例(如湖北兴山崩塌避险、重庆长寿滑坡预警、湖南"挪床行动")证明,提前预警和科学防治能有效避免人员伤亡。云南省2024年通过预警体系成功避让31起灾害,保护1342人生命安全。这些实践表明,地质灾害防治需结合科技手段与群防体系,实现早预警、早处置。 阅读详情

相关推荐

CAN通信:EB中配置CAN驱动,配置参数解析

以S32K314芯片说明,其他芯片不同,参数配置也有差异。

zhangxiaio1的博客 2166

LeetCode刷题——279. 完全平方数

题目 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 示例 1: 输入: n = 12 输出: 3 解释: 12 = 4 + 4 + 4. 示例 2: 输入: n = 13 输出: 2 解释: 13 = 4 + 9. 来源:力扣(LeetCode) 链接:https://leetcode-c...

日积月累,天道酬勤 901

基于CANoe的车载以太网测试

以太网测试 CANoe

Yafet 4548

leetcode-有效的完全平方数

文章目录题目代码他人优秀解答 题目 给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。 说明:不要使用任何内置的库函数,如 sqrt。 示例 1: 输入:16 输出:True 示例 2: 输入:14 输出:False 代码 /* * @lc app=leetcode.cn id=367 lang=java * * [367] 有效...

lingle1的博客 371

当兵心理测试软件,当兵心理测试题及答案

心理测试是一种比较先进的测试方法,它是指通过一系列手段,将人的某些心理特征数量化,来衡量个体心理因素水平和个体心理差异差异的一种科学测量方法。小编为你整理了当兵心理测试题及答案,希望对你有所参考帮助。征兵心理测试题(1代表是2代表否)1、我的胃口很好。12、我早上起来的时候,多半觉得睡眠充足,头脑清醒13、我喜欢看报纸上的犯罪新闻。14、有时我常感到困难重重,无法克服。25、我时常遇见一些所谓的专...

weixin_42128393的博客 1万+

Nginx反向代理MinIO私有桶签名失效?一招解决Host头校验问题

本文详细解析了Nginx反向代理MinIO私有桶时出现的签名失效问题,重点解决了Host头校验导致的"SignatureDoesNotMatch"错误。通过精准配置proxy_set_header保持Host头一致性,并提供了二级目录代理和调试指南,帮助开发者高效解决这一常见技术难题。

weixin_29201313的博客 321

【算法题】279. 完全平方数-力扣(LeetCode)

1. **空间优化**:由于动态规划的状态转移方程只依赖于前一行的数据,可以将二维数组优化为一维数组。 2. **减少不必要的计算**:在构建完全平方数列表时,可以直接使用一个列表来存储这些数,而不需要每次计算平方。

Janium的博客 1039

ESP32水墨屏日历实战:低功耗自动更新与HTTPS数据解析

本文详细介绍了ESP32水墨屏日历项目的开发实践,重点讲解了低功耗自动更新与HTTPS数据解析的实现方法。通过ESP32的自动休眠功能和水墨屏的零功耗特性,结合HTTPS请求安全获取网络数据,实现了高效节能的桌面日历应用。项目代码开源,适合物联网开发者参考。

xx56789的博客 777

【中等】力扣算法题解析LeetCode279:完全平方数

本文介绍了如何用最少数量的完全平方数之和表示整数n。基于四平方和定理,算法通过数学方法高效求解:先去除4的因子,再依次检查1、2、4个平方数的情况,最后返回3。

ylumwd的博客 611

信号检测算法的MATLAB仿真:能量检测、循环平稳检测和匹配滤波检测

根据具体的应用场景和要求,选择合适的信号检测算法可以提高系统的性能和可靠性。在无线电通信中,信号检测是一项重要的任务,它用于检测和识别接收到的信号。在本文中,我们将介绍三种常用的信号检测算法:能量检测、循环平稳检测和匹配滤波检测,并提供相应的MATLAB源代码进行仿真实现。在上述代码中,我们首先设置了能量检测的阈值,然后生成了一个包含1000个服从正态分布的随机信号样本的信号。在上述代码中,我们首先设置了信号模板,然后生成了一个包含信号模板的信号样本。最后,通过比较相关性的最大值与阈值来判断信号是否存在。

PixelLancer的博客 1362

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

力扣题解 279 完全平方数

完全平方数 题解 Leetcode-279 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/perfect-squares 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 示例 1: 输入: n = 12 输出: 3 解释: 12 = 4 + 4 + 4...

fulin9452的博客 412

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

力扣完全平方数279和力扣91解码方法的做题笔记

动态规划的状态定义dp[i]:表示前i个字符的解码方式数。例如,dp[1]表示前 1 个字符的解码方式数。dp[2]表示前 2 个字符的解码方式数。以此类推。

lfm147258369的博客 1284

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Leetcode 279. 完全平方数

Leetcode 279. 完全平方数1、问题分析2、问题解决3、总结 1、问题分析 题目链接:https://leetcode-cn.com/problems/perfect-squares/   本质上就是一个动态规划问题。代码我已经进行了详细的注释,理解应该没有问题,读者可以作为参考,如果看不懂(可以多看几遍),欢迎留言哦!我看到会解答一下。 2、问题解决   笔者以C++方式解决。 #include "iostream" using namespace std; #include "algori

珍惜 8955

Leetcode 279 python 完全平方数

题意: 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 示例一: 输入: n = 12 输出: 3 解释: 12 = 4 + 4 + 4. 示例二: 输入: n = 13 输出: 2 解释: 13 = 4 + 9. 方法一: 广度优先遍历(图的最短路径) 举例说明方法: 例如对于上图中的13,我们...

小力子的博客 1617

leetcode 279——完全平方数

leetcode 279——完全平方数 题目描述: 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 示例 1: 输入: n = 12 输出: 3 解释: 12 = 4 + 4 + 4. 示例 2: 输入: n = 13 输出: 2 解释: 13 = 4 + 9. 来源:力扣(LeetCode) 链接:https...

weixin_44795839的博客 252

leetcode 279,完全平方数

leetcode 279,完全平方数 题目描述 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 示例 1: 输入: n = 12 输出: 3 解释: 12 = 4 + 4 + 4. 示例 2: 输入: n = 13 输出: 2 解释: 13 = 4 + 9 方法一:动态规划 构造最优子结构 for...

qq_40666620的博客 207

力扣279. 完全平方数

力扣279完全平方数 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 示例 1: 输入: n = 12 输出: 3 解释: 12 = 4 + 4 + 4. 示例 2: 输入: n = 13 输出: 2 解释: 13 = 4 + 9. 来源:力扣(LeetCode) 思路:对每一个数进行列举,然后把结果剩余值丢进队列里,当剩余值为0时,返回层数。那么层数怎么表示呢?可以在跟值包装一下一起丢进队列,当前层数就是队首元素的层数

Steve_Liu12399的博客 372

Leetcode 力扣279 完全平方数

Leetcode279 完全平方数

weixin_63171335的博客 261

leetcode279---完全平方数

leetcode279—完全平方数原题链接 原题简述 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 示例 1: 输入: n = 12 输出: 3 解释: 12 = 4 + 4 + 4. 示例 2: 输入: n = 13 输出: 2 解释: 13 = 4 + 9. 解法分析 动态规划 dp[i]: 组成正整...

Again的博客 356

LeetCode 279.完全平方数

LeetCode 279.完全平方数 bfs写法,还有四平方定理,那个看不懂 public: int numSquares(int n) { vector&amp;lt;bool&amp;gt; vis(n+1,false); queue&amp;lt;pair&amp;lt;int,int&amp;gt;&amp;gt; q; q.push(make_pa...

缇欧的咪西 640

Leetcode 279. 完全平方数 C++

Leetcode 279. 完全平方数 题目 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 测试样例 示例 1: 输入: n = 12 输出: 3 解释: 12 = 4 + 4 + 4. 示例 2: 输入: n = 13 输出: 2 解释: 13 = 4 + 9. 题解 动态规划 令dp[i]表示组成i的完全平方数的最少个数。我们思考一下转移方程 对于组成i的完全平方数的最少个数肯定是一个数的完全平方数的最少个数

weixin_43750513的博客 511

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

题目要求: 分析: 这道题利用动态规划来做,参考了一位大神的博客,传送门:LeetCode 279. Perfect Squares 我们创建一个长度为n + 1的数组dp表示最少的完全平方数,则可以得到一个数学关系式: dp[i] = Math.min(dp[j] + dp[i - j], dp[i]) 根据这个表达式就可以写代码了。 具体代码如下: public class Solution...

阿花的IT历程 707

Leetcode279题完全平方数

Leetcode279题完全平方数 题目说明 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 示例 1: 输入: n = 12 输出: 3 解释: 12 = 4 + 4 + 4. 示例 2: 输入: n = 13 输出: 2 解释: 13 = 4 + 9. 题目思路 先把dp数组全部初始化为数组下标(因为每个数...

DeaD_PooL_的博客 410

力扣每日一题:279. 完全平方数

目录题目:279. 完全平方数示例1示例2提示:解题思路及代码(1)完全背包问题-动态规划(2)动态规划+空间优化(3)BFS 题目:279. 完全平方数 难度: 中等 题目: 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 给你一个整数 n ,返回和为 n 的完全平方数的 最少数量 。 完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而

aruewds的博客 909

LeetCode第279题_完全平方数

LeetCode 279完全平方数题解摘要 本文解析了LeetCode第279题"完全平方数",提供了动态规划和数学方法两种解题思路。动态规划解法通过构建dp数组,记录每个数所需的最小平方数数量;数学方法则利用四平方和定理。文章包含C#、Python、C++三种实现代码,并对比了性能(C++最快44ms,Python最慢148ms)。核心知识点包括动态规划状态转移方程和数学定理应用,适合中等水平算法学习者。常见错误提示和处理方法有助于避免解题陷阱,相关题目推荐扩展了学习范围。

qq_40263592的博客 1533
上一篇: LeetCode 501. 二叉搜索树中的众数
下一篇: LeetCode 145. 二叉树的后序遍历
wenkun97
博客等级 码龄10年 15粉丝 139原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值