279. 完全平方数

1. 背

这道题看起来和整数拆分很像,但是我脑子抽了,就非得用那个方法来处理,结果死得很惨。并不是那种方法不能做,而是挺坑的。dp[n]表示以n结尾时的结果。
在这里插入图片描述
写代码的时候可以不用开根号处理
看代码就知道了。

2.题目

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

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

示例 1:

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

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

3. 答案

class Solution {
public:
    int numSquares(int n) {
        vector<int>dp(n+1,1);
        dp[0]=0;
		dp[1]=1;
        for(int i=2; i<=n;++i)
        {
			int min_num = INT_MAX;
			for(int j=1;j*j<=i;++j)
			{
				min_num = min(min_num,dp[i-j*j]);
			}
			dp[i]=1+min_num;
		}    
		return dp[n];


    }
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tux~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值