首页 > 其他分享 >完全平方数(动态规划)

完全平方数(动态规划)

时间:2025-01-08 17:59:51浏览次数:1  
标签:平方 示例 int 整数 完全 动态 规划 dp

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

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

示例 1:

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

示例 2:

输入:n = 13
输出:2
解释:13 = 4 + 9
class Solution {
public:
    int numSquares(int n) {
        vector<int> dp(n+1);//dp[i]表示和为i的完全平方数的最少数量。其中dp[0]已初始化为0
        for(int i=1;i<=n;i++){
            //计算dp[i]
            int minn = INT_MAX;
            for(int j=1;j*j<=i;j++){//i一定由其中一个完全平方数相加而成,所以先固定这一个完全平方数,看去除了这个完全平方数所用的完全平方数的最少数量,然后最后在加1即可
                minn = min(minn,dp[i-j*j]);
            }
            dp[i] = minn+1;
        }
        return dp[n];
    }
};

 

标签:平方,示例,int,整数,完全,动态,规划,dp
From: https://www.cnblogs.com/yueshengd/p/18660285

相关文章

  • 二维动态规划2
    [Algo]二维动态规划21.不同的子序列//4.不同的子序列//https://leetcode.cn/problems/distinct-subsequences/longnumDistinct(strings,stringt){intn=s.length(),m=t.length();vector<vector<long>>dp(n+1,vector<long>(m+1));//dp[i]......
  • 2025年入职转行网络安全,该如何规划?_网络安全职业规划
    前言前段时间,知名机构麦可思研究院发布了《2022年中国本科生就业报告》,其中详细列出近五年的本科绿牌专业,其中,信息安全位列第一。网络安全前景对于网络安全的发展与就业前景,想必无需我多言,作为当下应届生收入较高的专业之一,网络安全同样也在转行领域中占据热门位置,主要......
  • 代码随想录算法训练营第1天 | 数组理论基础,704. 二分查找,27. 移除元素,977.有序数组的
    1.刷题部分1.1数组基础理论原文链接:代码随想录1.1.1题目内容知识性讲解,点击链接查看原文。1.1.2初见想法是一些很基本的知识,看看有么有什么生疏的。1.1.3看录后想法原来有的语言的二维数组元素地址是可以行与行之间不连续的。1.1.4遇到的困难暂未遇到困难。1.......
  • 蓝桥19865 线性规划
    太久没碰这种数学了,写的比较笨数列前k项≤2N的情况进行线性规划,约束条件有a+(k-1)d≤2n,a+kd>2n,前k项求和>2n在k≥3时,约束条件2包含约束条件3,a+(k-1)d≤2n,a+kd>2n,在[3,inf)上区域求和,就是a+2d≤2nk=1,2为特殊情况,k=1时无法满足,k=2时约束条件......
  • 数据查询优化策略: 全聚合下推、分区剪枝、部分聚合下推以及动态数据迁移
    关于数据虚拟化在逻辑数据仓库(LogicalDataWarehouse)和逻辑数据湖(LogicalDataLake)架构中查询优化的实际应用示例。本文将为您详细介绍这些场景中最重要的优化技术,包括 全聚合下推(FullAggregationPushdown)、分区剪枝(PartitionPruning)、部分聚合下推(PartialAggregationP......
  • CICD Day6、基于kubernetes动态创建代理
    Jenkins支持基于kubernetes动态创建代理,使代理程序能够运行在Pod中,这种方法可以根据构建任务的变化动态的增减代理,充分利用kubernetes的特性,为分布式构建提供灵活的运行环境如下图所示当项目触发构建时,Jenkins会调用kubernetesapi创建一个专用的pod作为从节点,在该pod执行......
  • Vue.js组件开发-如何动态更改图表类型
    Vue.js组件开发中,动态更改图表类型通常涉及到更新图表库的配置并重新渲染图表。如果使用的是ECharts,可以通过修改图表配置中的type属性来实现,并调用setOption方法来应用更改。示例:展示如何在Vue.js组件中动态更改ECharts图表类型:<template><div><divref="chart"st......
  • 打家劫舍(动态规划)
    你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内......
  • Luogu P3041 USACO12JAN Video Game G 题解 [ 紫 ] [ AC 自动机 ] [ 动态规划 ]
    VideoGamesG:弱智紫题,30min切了,dp思路非常板。多模式串一看肯定就是要建出AC自动机,然后在fail树里下传标记,预处理每个节点到达后的得分。然后设计\(dp_{i,j}\)表示第\(i\)个字符,AC自动机里匹配节点在\(j\)的最大答案,刷表法转移即可:\[dp_{i+1,ch_{j,c}}\gets\ma......
  • 线性规划对偶小记
    有\(n\)个变量\(x_1,x_2,\dots,x_n\),有若干条限制,形如:\(f(x_1,x_2,\dots,x_n)\leb\)\(f(x_1,x_2,\dots,x_n)=b\)\(f(x_1,x_2,\dots,x_n)\geb\)三种不同形式(注意不能取小于或大于号),可称这些限制是线性的。同时,需要最大化\(\sum\limits_{i=1}^......