力扣-279.完全平方数

题目描述

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

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

java 复制代码
class Solution {
    public int numSquares(int n) {
        int[] nums = new int[102];
        for(int i = 1; i <= 101; i++){
            nums[i] = i*i;
        }
        int[] dp = new int[n+1];    //dp数组是最后答案,和为n最少个数
        for(int i = 1; i <= n; i++){
            dp[i] = i;  //最差的可能是全1
            for(int j = 1;i-nums[j]>=0;j++){
                dp[i] = Math.min(dp[i],dp[i-nums[j]]+1);    //轮流用不超过n的完全平方数做替换
            }
        }
        return dp[n];
    }
}

小结:还是一维的dp,要考虑每个数用完全平方数与不用完全平方数之间哪个最优,且不大于该数的完全平方数都要试一遍。

相关推荐
PAK向日葵5 小时前
【算法导论】PDD 0817笔试题题解
算法·面试
地平线开发者8 小时前
ReID/OSNet 算法模型量化转换实践
算法·自动驾驶
地平线开发者8 小时前
开发者说|EmbodiedGen:为具身智能打造可交互3D世界生成引擎
算法·自动驾驶
星星火柴9369 小时前
关于“双指针法“的总结
数据结构·c++·笔记·学习·算法
艾莉丝努力练剑10 小时前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
闪电麦坤9511 小时前
数据结构:迭代方法(Iteration)实现树的遍历
数据结构·二叉树·
C++、Java和Python的菜鸟12 小时前
第六章 统计初步
算法·机器学习·概率论
Cx330❀12 小时前
【数据结构初阶】--排序(五):计数排序,排序算法复杂度对比和稳定性分析
c语言·数据结构·经验分享·笔记·算法·排序算法
散11212 小时前
01数据结构-Prim算法
数据结构·算法·图论