完全平方数(力扣)动态规划 JAVA

news2024/11/25 15:31:18

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

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

示例 1:

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

示例 2:

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

提示:

1 <= n <= 10^4

解题思路:

1.状态是可以叠加的

2.即12的完全平方数的个数,可以由11,8,3的完全平方个数中最小的 + 1得到

3.后面的新值需要前面的值做铺垫,所以循环从小到大求完全没有问题

4.初始值0的完全平方个数为0,1的完全平方数为1,dp[i] = i

在这里插入图片描述

动态规划代码:

class Solution {
    public int numSquares(int n) {
           int dp[] = new int[n + 1];
           
           for(int i = 1; i <= n; i ++) {
               dp[i] = i;
        	   for(int j = 1; i - j * j >= 0; j ++) {
        		   dp[i] = Math.min(dp[i], dp[i - j * j] + 1);
        	   }
           }
           return dp[n];
    }
}

在这里插入图片描述

这里正向推理也可以

正推代码:

class Solution {
    public int numSquares(int n) {
           int dp[] = new int[n + 1];
           for(int i = 0; i <= n; i ++) dp[i] = i;
           
           for(int i = 0; i <= n; i ++)
        	   for(int j = 1; j * j + i <= n; j ++) {
        		   dp[i + j * j] = Math.min(dp[i + j * j], dp[i] + 1);
        	   }
           return dp[n];
    }
}

初始化得放在外面

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/750566.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【指针进阶】(题目练习)

这篇文章的思维导图在这里&#xff1a;思维导图 一维数组&#xff1a; int a[] {1,2,3,4}; printf("%d\n",sizeof(a)); printf("%d\n",sizeof(a0)); printf("%d\n",sizeof(*a)); printf("%d\n",sizeof(a1)); printf("%d\n"…

Vit 实战营 Class2:图像与Transformer基础

文章目录 数组图像&#xff1a;图像与像素图像分类&#xff1a;机器如何学习&#xff1f;NMT&#xff1a;Neuron Machine TranslationTransformerVision Transformer代码实战 数组图像&#xff1a;图像与像素 什么是数字图像&#xff1f;在计算机图像的图像格式。每一个点叫pix…

全国节能宣传周丨物通博联智慧能源解决方案助力节能降碳

今年7月10日至16日&#xff0c;为全国第33个节能宣传周。今年全国节能宣传周活动主题是“节能降碳&#xff0c;你我同行”。 全国节能宣传周活动是在1990年国务院第六次节能办公会议上确定的活动周&#xff0c;开展该活动是实施全面节约战略、开展节能降碳宣传教育、推动形成绿…

ros系统生成kinova双臂机器人moveit配置包方法,详细过程,亲测有效!

环境&#xff1a;ubuntu18.04 ros&#xff1a;melodic 此博客前提你已经安装了moveit&#xff0c;如果未安装&#xff0c;可参考链接 一、启动MoveIt Setup Assistant roslaunch moveit_setup_assistant setup_assistant.launch点击&#xff1a;Create New MoveIt Configurat…

听产品大佬谈大语言模型的商业化价值

今年 3 月以来&#xff0c;全球各大厂商陆续发布大语言模型&#xff0c;无数人欢欣鼓舞&#xff0c;庆祝沉寂了几年的 AI 领域重新焕发生机。 然而热闹过后&#xff0c;一个现实的问题摆在面前&#xff1a;大语言模型的商业化价值该如何挖掘&#xff1f; 来自美洽的资深产品经…

CVE-2021-41773

CVE-2021-41773 Apache Httpd Server 路径穿越漏洞 Httpd&#xff08;即 HTTP Daemon &#xff0c;超文本传输协议守护程序的简称&#xff09;是一款运行于网页服务器后台&#xff0c;等待传入服务器请求的软件。HTTP 守护程序能自动回应服务器请求&#xff0c;并使用 HTTP 协…

fastadmin调试前端js

当键盘按键抬起后打印id #username&#xff0c;点击箭头的除缓存 隐藏前端昵称 设置为 style"sidplay:none" 添加管理员组别的时候把此处的 NULL改为 1 就可以默认选择第一组别

springboot生鲜交易系统

生鲜交易管理方面的任务繁琐,以至于交易市场每年都在生鲜交易管理这方面投入较多的精力却效果甚微,生鲜交易系统的目标就是为了能够缓解生鲜交易管理工作方面面临的压力,让生鲜交易管理方面的工作变得更加高效准确。 本项目在开发和设计过程中涉及到原理和技术有: B/S、java技…

css 绘制直角梯形 和 平行四边形

<div:class"{isFirst: index 0,tab_item: index ! 0,}":style"{width: item?.label?.length > 4 ? 206px : 137px,}"><div>{{ item.label }}</div></div> isFirst是直角梯形 tab_item是平行四边形 直角梯形 .isFirstcur…

计算机系统结构与操作系统实验三(5)-中断

&#x1f4cd;实验要求 将中断处理程序放到C里编写 &#x1f4cd;实验过程 鉴于代码相比之前&#xff0c;多出了很多配套的固定代码&#xff0c;因此代码量和代码中来突增&#xff0c;本文就不再一个一个贴代码了&#xff0c;需要的直接去看我上传在csdn的代码吧(文末有链接…

音视频绕不开的话题之WebRTC

什么是WebRTC&#xff1f; 闲来无事&#xff0c;我们今天探讨下音视频绕不开的一个话题&#xff1a;WebRTC。WebRTC之于音视频行业&#xff0c;无异于FFMpeg&#xff0c;可以说WebRTC的开源&#xff0c;让音视频行业大跨步进入发展快车道。 WebRTC是一个支持实时音视频通信的开…

mac系统终端运行python文件

1.在要运行的python文件首行里添加python解释器路径代码 代码&#xff1a; #!/usr/bin/env python3 注意:上面代码中的python3是对应当前的python版本 例子&#xff1a; 2.复制要运行的python文件位置&#xff0c;在终端使用代码进入要运行的文件位置 终端运行代码&…

架构训练营3:架构设计流程和架构师职责

架构师相关职责&#xff1a; 架构师是业务和技术之间的桥梁&#xff0c;架构师不能只顾技术&#xff0c;不懂业务&#xff0c;架构师很容易两头不讨好 三个核心能力&#xff1a; 判断&#xff1a;1业务理解力2.技术能力3.沟通能力 拆解&#xff1a;1技术深度2.技术宽度3.技术…

出差在外,远程访问企业局域网象过河ERP系统【内网穿透】

文章目录 概述1.查看象过河服务端端口2.内网穿透3. 异地公网连接4. 固定公网地址4.1 保留一个固定TCP地址4.2 配置固定TCP地址 5. 使用固定地址连接 概述 ERP系统对于企业来说重要性不言而喻&#xff0c;不管是财务、生产、销售还是采购&#xff0c;都需要用到ERP系统来协助。…

抖音seo软件技术开发源码搭建部署

抖音SEO矩阵系统源码开发流程分为以下几个步骤&#xff1a; 1.需求分析 在开发抖音SEO矩阵系统源码之前&#xff0c;首先需要对用户的需求进行分析&#xff0c;确定开发的功能和特性。 2.架构设计 根据需求分析的结果&#xff0c;进行架构设计&#xff0c;确定系统的整体框…

模型压缩-裁剪、量化、蒸馏

模型压缩是一种缩小神经网络结构和参数的技术。 压缩的模型在使用少量计算资源 的情况下&#xff0c;使其性能与原始模型近似&#xff1b;常见包括剪枝、量化、蒸馏、神经结构搜索(NAS)等 ##模型压缩与工程部署关注的常用参数1&#xff09;模型大小 一般使用参数量parameter来衡…

Acwing算法基础 前缀和 差分 双指针 位运算 离散化

前缀和与差分 AcWing 795. 前缀和 import java.util.*; public class Main{public static void main(String[] args ){Scanner scnew Scanner(System.in);int nsc.nextInt();int msc.nextInt();int[] arrnew int[n1];arr[0]0;for(int i1;i<n;i) {arr[i]sc.nextInt()arr[i-1…

【从零开始学CSS | 第二篇】伪类选择器

目录 前言&#xff1a; 伪类选择器&#xff1a; 常见的伪类选择器&#xff1a; 举例&#xff1a; 小窍门&#xff1a; 总结: 前言&#xff1a; 上一篇文章我们详细的为大家介绍了一些常见的选择器&#xff0c;这几篇我们将再次介绍CSS中的一个常见选择器——伪类选择器&am…

flutter开发实战-css的linear-gradient的值转换成LinearGradient

flutter开发实战-css的linear-gradient的值转换成LinearGradient 在开发中遇到了参照前端的css的属性值&#xff0c;需要将css的linear-gradient值转换成LinearGradient&#xff0c;这样可以直接设置相应的值。这里暂时不涉及到&#xff0c;颜色值名称、color-stop1&#xff0…

第6章 NVMe 介绍 6.1-6.3

6.1 AHCI 到 NVMe AHCI协议。NVMe协议。 HDD 和早期的 SSD 绝大多数都是使用SATA接口&#xff0c;跑的是AHCI&#xff0c;它是一种系统接口标准。 后来&#xff0c;AHCI 和 SATA 不能满足高性能和低时延 SSD 的需求&#xff0c;SSD 需要更快、更高效的协议和接口。因此 NVMe 出…