【Hot100】LeetCode—279. 完全平方数

news2024/9/23 6:38:52

目录

  • 题目
  • 1- 思路
  • 2- 实现
    • ⭐完全平方数——题解思路
  • 3- ACM 实现


题目

  • 原题连接:279. 完全平方数

1- 思路

思路

  • 动规五部曲

2- 实现

⭐完全平方数——题解思路

在这里插入图片描述

class Solution {
    public int numSquares(int n) {
        
        // 1. 定义 dp
        int[] dp = new int[n+1];

        //2. 递推公式
        // dp[j] = Math.min(dp[j],dp[j-i*i]+1);

        //3. 初始化
        int max = Integer.MAX_VALUE;
        for(int i = 0 ; i < dp.length;i++){
            dp[i] = max;
        }
        dp[0] = 0;

        for(int i = 1 ; i*i <= n;i++){
            for(int j = i*i ; j<=n ; j++){
                dp[j] = Math.min(dp[j],dp[j-i*i]+1);
            }
        }
        return dp[n];
     }
}

3- ACM 实现

public class squareNum {

    public static int numSquares(int n){
        int[] dp = new int[n+1];

        // 2. 递推公式
        // dp[j] = Math.min(j-i*i+1,dp[j]);

        // 3.初始化
        int MAX = Integer.MAX_VALUE;
        for (int i = 0 ; i <= n;i++){
            dp[i] = MAX;
        }
        dp[0] = 0;

        //4. 先遍历 物品 后遍历背包
        for(int i = 1; i*i <= n;i++){
            for(int j = i*i ; j <= n;j++){
                dp[j] = Math.min(dp[j - i * i] + 1, dp[j]);
            }
        }
        return dp[n];
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入要求的完全平方数和");
        int n = sc.nextInt();

        System.out.println("结果是"+numSquares(n));
    }
}


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

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

相关文章

1Panel面板配置java运行环境及网站的详细操作教程

本篇文章主要讲解&#xff0c;通过1Panel面板实现java运行环境&#xff0c;部署网站并加载的详细教程。 日期&#xff1a;2024年7月21日 作者&#xff1a;任聪聪 独立博客&#xff1a;https://rccblogs.com/501.html 一、实际效果 二、详细操作 步骤一、给我的项目进行打包&am…

报考安全工程师,这些人千万别考!

近几年&#xff0c;注安证书的缺口很大&#xff0c;而这两年题目的难度也在逐步增大&#xff0c;考生能越早考越好。但在大环境不好时&#xff0c;很多人都想着增加点副业&#xff0c;因此很多人都会有想学习考证&#xff0c;基本上为了注安挂靠才去考的&#xff0c;有这种念头…

一次搞定!中级软件设计师备考通关秘籍

大家好&#xff0c;我是小欧&#xff01; 今天我们来聊聊软考这个话题。要是你准备参加计算机技术与软件专业技术资格&#xff08;软考&#xff09;&#xff0c;那么这篇文章就是为你量身定做的。话不多说&#xff0c;咱们直接进入正题。 什么是软考&#xff1f; 软考&#xf…

CST热仿真案例——电动车直流快充Cable热仿真

作者 | Zhou Ming 随着大功率直流充电桩的不断普及&#xff0c;我们在享受直流快充带来的高效优势外&#xff0c;更要关注直流快充的安全问题。工程师在设计中必须考虑过压、过流、短路、过温等多重保护机制&#xff0c;才能确保充电过程中的设备和人身安全。本期我们利用CST对…

在浏览器中测试JavaScript代码方法简要介绍

在浏览器中测试JavaScript代码方法简要介绍 在浏览器中测试JavaScript代码是前端开发中的一个重要技能。方法如下&#xff1a; 1. 浏览器控制台 最简单和直接的方法是使用浏览器的开发者工具中的控制台&#xff08;Console&#xff09;。 步骤&#xff1a; 在大多数浏览器…

IT common sense常识

how to input formative json data in console console.log({"message": [{"cat_id": 1,"cat_name": "大家电","cat_pid": 0,"cat_level": 0,"cat_deleted": false,,,,})2) how to clear unecessary c…

软件安全测试知识分享,第三方软件测评中心推荐

在信息技术飞速发展的今天&#xff0c;软件安全测试已经成为确保软件产品质量及用户数据安全的关键环节。 安全测试的核心是识别、评估和降低软件系统中潜在的安全风险。通过深度剖析软件架构、代码及其使用环境&#xff0c;测试人员能够找出可能被黑客攻击的薄弱环节。所谓“…

QSqlRelationalTableModel 增删改查

QSqlRelationalTableModel 可以作为关系数据表的模型类&#xff0c;适用于三范式设计的表&#xff0c;主表中自动加载外键表中的名称。本文实现QSqlRelationalTableModel 为模型类&#xff0c;实现增删改查。 目录 0.表准备 1. 构建表格数据 声明变量 表格、数据模型、选择…

5G赋能新能源,工业5G路由器实现充电桩远程高效管理

随着5G技术的广泛应用&#xff0c;新能源充电桩的5G应用正逐步构建起全新的生态系统。在数字化转型的浪潮中&#xff0c;新能源充电桩行业正迎来数字化改革。工业5G路由器的引入&#xff0c;为充电桩的远程管理提供了强有力的技术支持&#xff0c;新能源充电桩5G路由器网络部署…

Linux系统编程__进程学习1

文章目录 进程相关概念进程创建实战fork函数创建进程vfork创建进程子进程退出等待子进程孤儿进程 进程相关概念 一、什么是程序&#xff0c;什么是进程&#xff0c;有什么区别&#xff1f; 程序是静态的概念&#xff0c;gcc xxx.c –o pro 磁盘中生成pro文件&#xff0c;叫做程…

基于vue3 + vite产生的 TypeError: Failed to fetch dynamically imported module

具体参考这篇衔接&#xff1a; Vue3报错&#xff1a;Failed to fetch dynamically imported module-CSDN博客 反正挺扯淡的&#xff0c;错误来源于基于ry-vue-plus来进行二次开发的时候遇到的问题。 错误起因 我创建了一个广告管理页面。然后发现访问一直在加载中。报的是这样…

如何一键群发所有好友?

登录系统后&#xff0c;累计在线时间超过 48小时再进行群发。 第一步&#xff1a;选择联系人 点击群发助手下群发设置&#xff0c;在左侧选择微信号后&#xff0c;然后选择微信号下的微信好友/群&#xff0c;选择完成后&#xff0c;点击下一步按钮。 第二步&#xff1a;设定群…

C++ | Leetcode C++题解之第273题整数转换英文表示

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<string> singles {"", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Ni…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第四十四章 注册字符设备号

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

Linux学习第55天:Linux 4G 通信实验(更快、更高、更强)

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 无论是有线网络还是WiFi都是摆脱不了布线的尴尬&#xff0c;而4G通信可以彻底拜托网线的束缚&#xff0c;实现无线网络通信。 而说到4G就不得不提到5G&#xff0c;中…

Requestium:一个将Requests和Selenium无缝衔接的爆款工具

2024软件测试面试刷题&#xff0c;这个小程序&#xff08;永久刷题&#xff09;&#xff0c;靠它快速找到工作了&#xff01;&#xff08;刷题APP的天花板&#xff09;-CSDN博客文章浏览阅读2.1k次&#xff0c;点赞85次&#xff0c;收藏11次。你知不知道有这么一个软件测试面试…

全国区块链职业技能大赛国赛考题区块链产品需求分析与方案设计

任务1-1:区块链产品需求分析与方案设计 本任务需要依据项目背景完成需求分析与方案设计,具体要求如下: 依据给定区块链食品溯源系统的业务架构图,对考题进行业务分析,尽可能多的去考虑一个业务系统所需要的模块,使用Visio或思维导图工具展现本系统的基本设计概念和处理流…

python函数中如何修改全局变量

所谓全局变量&#xff0c;其实就是相对于局部变量而说的。全局变量是定义在整个文件层次上的&#xff0c;可以在文件内的任何地方被访问&#xff0c;包括函数内部。 DEFAULT_DB_NAME "ss" def get_connection():print(DEFAULT_DB_NAME) if __name__ __main__:get_c…

C++ —— 关于模板初阶

1.什么是模板 在C中&#xff0c;模板&#xff08;template&#xff09;是一种通用的编程工具&#xff0c;允许程序员编写通用代码以处理多种数据型或数据结构&#xff0c;而不需要为每种特定类型编写重复的代码&#xff0c;通过模板&#xff0c;可以实现代码的复用和泛化提高代…

Python GUI Maker:拖拽式生成Tkinter GUI 界面的设计工具,让Tkinter开发变得专业高效

简介 Python 是一门极其流行和强大的编程语言,其简洁优雅的语法以及丰富的标准库和第三方库,使其在各个领域都广受欢迎。其中,Tkinter 是 Python 内置的图形用户界面(GUI)库,是构建 Python GUI 应用程序的事实标准。Tkinter 提供了创建窗口、添加控件、处理事件等基本功能,但对…