279. 完全平方数 leetcode JAVA

Stella981
• 阅读 635

题目:

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

示例 1:

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

示例 2:

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

解题思路:

使用动态规划的作法,前确定之前的整数n由几个完全平方数构成。

class Solution {
    public int numSquares(int n) {
        int[] a =new int [n+1];      
        a[0] = 0;
        a[1] = 1;
        for(int i = 2; i <= n;i++)
        {
            int temp = Integer.MAX_VALUE;
            //int temp1 = Integer.MIN_VALUE;
            for(int j = 1; j*j <= i;j++)
            {
                temp = Math.min(temp,a[i-j*j]);
            }
            a[i] = temp + 1;
        }
        return a[n];
    }
}
点赞
收藏
评论区
推荐文章
DaLongggggg DaLongggggg
3年前
python刷题-最大最小公倍数
问题描述已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。输入格式输入一个正整数N。输出格式输出一个整数,表示你找到的最小公倍数。样例输入9样例输出504数据规模与约定1<N<106。Nint(input())Min1ifN<2:print(N)elifN%2
九路 九路
4年前
Java判断一个数是不是快乐数
快乐数的定义:快乐数(happynumber)有以下的特性:在给定的进位制下,该数字所有数位(digits)的平方和,得到的新数再次求所有数位的平方和,如此重复进行,最终结果必为1。以十进制为例:28→2²8²68→6²8²100→1²0²0²132→3²2²13→1²3²10→1²0²137→3
DaLongggggg DaLongggggg
3年前
python刷题-进制转换
十六进制转八进制问题描述  给定n个十六进制正整数,输出它们对应的八进制数。输入格式  输入的第一行为一个正整数n(1<n<10)。  接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式  输出n行,每行为输入对应的八进制正整数。  【注意】  输入的十六进制数不会有
执键写春秋 执键写春秋
3年前
Java练习(二)——寻找一个加100为完全平方,再加168还是完全平方的数
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?(该数小于100)【提示:如果一个整数是另外一个整数的平方,那么该数被称为完全平方数。】packagetest;publicclassPratice2publicstaticvoidmain(Stringargs)//TODOAu
Stella981 Stella981
3年前
LeetCode 92. 反转链表 II(Reverse Linked List II)
题目描述反转从位置_m_到_n_的链表。请使用一趟扫描完成反转。说明:1≤ _m_ ≤ _n_ ≤链表长度。示例:输入:12345NULL,m2,n4输出:14325NULL解题思路本题类似于反转链表
Stella981 Stella981
3年前
LeetCode 69 题
1.题目要求实现 intsqrt(intx) 函数。计算并返回 _x_ 的平方根,其中 _x_ 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例1:输入:4输出:2示例2:输入:8输出:2说
Stella981 Stella981
3年前
LeetCode
零钱兑换给定不同面额的硬币coins和一个总金额amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 \1。示例 1:输入:coins\1,2,5\,amount11输出:3解释:11551示例2:输入:coi
Wesley13 Wesley13
3年前
83. 删除排序链表中的重复元素
题目描述题目地址:https://leetcodecn.com/problems/removeduplicatesfromsortedlist/给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例1:输入:112输出:12示例 2:输入:11233输出:
Stella981 Stella981
3年前
Python_每日习题_0003_完全平方数
题目一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?程序分析因为168对于指数爆炸来说实在太小了,所以可以直接省略数学分析,用最朴素的方法来获取上限:n0while(n1)2nn<168:n1
Stella981 Stella981
3年前
LeetCode 279. 完全平方数 (C#实现)——动态规划,四平方和定理
问题:https://leetcodecn.com/problems/perfectsquares/(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fleetcodecn.com%2Fproblems%2Fperfectsquares%2F)给定正整数n,找到若干个