#yyds干货盘点# 动态规划专题:最少的完全平方数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点# 动态规划专题:最少的完全平方数相关的知识,希望对你有一定的参考价值。

1.简述:

描述

给定一个正整数n,请找出最少个数的完全平方数,使得这些完全平方数的和等于n。

完全平方指用一个整数乘以自己例如1*1,2*2,3*3等,依此类推。若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数。例如:1,4,9,和16都是完全平方数,但是2,3,5,8,11等等不是

数据范围:#yyds干货盘点#

输入描述:

仅一行,输入一个正整数 n 

输出描述:

按题目要求输出完全平方数之和为n的最少个数

示例1

输入:

5

输出:

2

说明:

1+4=5
示例2

输入:

8

输出:

2

说明:

4+4=8
示例3

输入:

9

输出:

1

说明:

3^2 = 9 \\ 32=9

2.代码实现:

import java.util.*;

public class Main
public static void main(String[] args)
Scanner reader = new Scanner(System.in);
int n = reader.nextInt();
// init
// dp[i] = dp[i - j * j] + 1
int[] dp = new int[n + 1];
Arrays.fill(dp, Integer.MAX_VALUE);
dp[0] = 0;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= i; j++)
if (j * j <= i)
dp[i] = Math.min(dp[i], dp[i - j * j] + 1);



// 恰好体积为n
System.out.println(dp[n]);


以上是关于#yyds干货盘点# 动态规划专题:最少的完全平方数的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点# 动态规划专题:跳跃游戏

#yyds干货盘点# 动态规划专题:合唱队形

#yyds干货盘点# 动态规划专题:计算字符串的编辑距离

#yyds干货盘点# 动态规划专题:数位染色

#yyds干货盘点# 动态规划专题:信封嵌套

#yyds干货盘点# 动态规划专题:装箱问题