Leetcode--279. 完全平方数

给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。

示例 1:

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

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

思路:这道题最直接的思路就是,要找到dp[n]的值,那就看他前面哪个位置可以加一个平方数直接到n,给可以一步到达n点的x点处的dp[x]的值加一即可

例如本题的第一个用例:dp[12],可以一步到12的有11,8,3

也就是取min(dp[11],dp[8],dp[3]),以此向前类推,求出结果

dp[0]=0,dp[1]=1;

动态转移方程:dp[n] = min(dp[n-j*j]+1,dp[n])

提交的代码:

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

完整的代码:


public class Solution279 {
    public static int numSquares(int n) {
        int i,j;
        int[] dp = new int[n+1];
        dp[0] = 0;
        for(i=1;i<=n;i++)
        {
            dp[i] = i;
            for(j=1;i-j*j>=0;j++)
            {
                dp[i] = java.lang.Math.min(dp[i-j*j]+1, dp[i]);
            }
        }
        return dp[n];
    }
    public static void main(String[] arga)
    {
        int n = 12;
        System.out.println(numSquares(n));
    }
}
 

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

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

相关文章

java基础题集

1.什么是java虚拟机&#xff1f;为什么java被称作是“平台无关的编程语言”&#xff1f; java虚拟机是一个可以执行java字节码的虚拟机进程。java源文件被编译成能被java虚拟机执行的字节码文件。 java被设计成允许应用程序可以运行在任意的平台&#xff0c;而不需要程序员为每…

AlphaFold证明人工智能可以解决基本的科学问题

来源&#xff1a;IEEE电气电子工程师Gif: DeepMindTwo examples of protein targets in the free modelling category.任何人工智能的成功实施都依赖于以正确的方式提出正确的问题。这就是英国人工智能公司DeepMind&#xff08;Alphabet的子公司&#xff09;在利用其神经网络解…

mysql部署策略_MySQL延迟问题和数据刷盘策略流程分析

一、MySQL复制流程官方文档流程如下&#xff1a;MySQL延迟问题和数据刷盘策略1、绝对的延时&#xff0c;相对的同步2、纯写操作&#xff0c;线上标准配置下&#xff0c;从库压力大于主库&#xff0c;最起码从库有relaylog的写入。二、MySQL延迟问题分析1、主库DML请求频繁原因&…

Java中文件的创建

File filenew File&#xff08;“text.txt”&#xff09; 运行这行代码&#xff0c;我们会发现相应的文件夹下无法找到创建的text.txt 首先 File 类是对文件系统的映射 并不是硬盘上真实的文件 所以 new File("xxx.xxx") 只是在内存中创建File文件映射对象,而并不会…

copy a random link

题目&#xff1a;A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null.Return a deep copy of the list.1 /**2 * Definition for singly-linked list with a random pointer.3 * struct Ra…

计算的极限(零):逻辑与图灵机

来源&#xff1a; 数学职业家提出问题和解决问题的人2012&#xff0c;图灵诞辰100周年&#xff0c;献给这位伟大的开拓者。计算无处不在。走进一个机房&#xff0c;在服务器排成的一道道墙之间&#xff0c;听着风扇的鼓噪&#xff0c;似乎能嗅出0和1在CPU和内存之间不间断的流动…

java修改list中对象的值_Java中List集合的一点总结

为什么要用接口引用指向实现类的对象&#xff1f;这种写法其实java多态的表现形式多态的定义&#xff1a;指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。&#xff08;发送消息就是函数调用List list;是在栈区开辟一个空间…

Science公布年度十大科学突破!新冠疫苗居首位

来源 &#xff1a; 新华社编辑&#xff1a;宗华排版&#xff1a;郭刚美国《科学》杂志17日公布其评选的2020年十大科学突破&#xff0c;“以创纪录的速度开发和测试急需的新冠疫苗”当选头号突破。中国、美国、欧洲等地科研人员在2020年年初获得新冠病毒基因组序列后&#xff0…

openlayers实例_介绍OpenLayers

简介Web开发有一个专门的方向就是Web GIS&#xff0c;而Openlayers库就是Web GIS里的一个翘楚&#xff0c;想要开源的Web GIS的JavaScript库几乎就没有别的选择。OpenLayers的官网是OpenLayers - Welcome​openlayers.org目前最新的版本是5.3.x。它的github地址是openlayers/op…

macos Jetbrains IDEA用户自定义vm配置信息存储路径, IDEA点击无反应 无法打开问题解决

Jetbrains Clion, IDEA 用户在应用里面修改了自定义的VM配置后的存储路径为 ~/Library/Application Support/JetBrains/xxx2023.3/xxx.vmoptions xxx为你安装的APP名称, 如 Clion .IntelliJIdea 这里的自定义配置如果配置有误就会直接导致JetBrains软件无法打开, 即 点击打开…

Leetcode--322. 零钱兑换

给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额&#xff0c;返回 -1。 示例 1: 输入: coins [1, 2, 5], amount 11 输出: 3 解释: 11 5 5 1 示例 2: 输入: coins [2],…

【sping揭秘】19、关于spring中jdbctemplate中的DataSource怎么来呢

我们这是可以正好借助之前学的factorybean类&#xff0c;自己吧jdbctemplate加载到spring容器中&#xff0c;我们可以封装多个这种对象&#xff0c;那么可以实现针对不同的数据库的jdbctemplate 首先我们肯定要引入对应的jar&#xff0c;来构建数据源对象 <dependency>&l…

2020年度“中国神经科学重大进展”获奖名单【附成果介绍】

来源&#xff1a;brainnews编辑&#xff1a;Simon为了推动神经科学领域的创新发展&#xff0c;充分展示和宣传神经科学领域的重大科研成果&#xff0c;经中国神经科学学会七届二次常务理事会一致通过&#xff0c;开展2020年度“中国神经科学重大进展”推荐工作。按照相关程序&a…

python选择某一行_Python常用语法有哪些 如何快速入门Python开发

Python常用语法有哪些&#xff1f;如何快速入门Python开发&#xff1f;Python编程语言是最容易学习、并且功能强大的语言&#xff0c;吸引了很多人学习入行。很多人想知道如何快速入门Python开发&#xff0c;接下来就给大家分享Python学习入门中常用的语法知识。1、变量。常量&…

Java--线程同步

在单线程程序中&#xff0c;每次只做一件事情&#xff0c;后面的事情需要等待前面这件事情完成才可以进行 如果是多线程程序&#xff0c;这件事情还没做完就又做另外一件事情&#xff0c;这就可能发生两个线程抢占资源的问题 例如&#xff1a;a与b两个人都要去洗手间&#xf…

人类使用AI征服太空技术盘点,《星球大战》中的机器人会成为现实吗?

来源&#xff1a;学术头条作者&#xff1a;Thomas Lawrence一说起太空 AI&#xff0c;你脑海中浮现的是这样的角色吗&#xff1f;图 | 电影《星球大战》的AI机器人&#xff1a;C-3PO和R2-D2&#xff08;来源&#xff1a;starwars.fandom.com)实际上&#xff0c;早在现代计算机问…

springboot jar中没有主清单属性_Spring Boot 常见错误及解决方法

导读Spring Boot 作为 Java 生态中最流行的开发框架&#xff0c;意味着被数以万计的开发者所使用。下面根据我们自身遇到的问题&#xff0c;加上用户提供的一些反馈&#xff0c;来大致梳理下 Spring Boot 的常见错误及解决方法。找不到配置&#xff1f;配置不对&#xff1f;配置…

Leetcode--174. 地下城游戏

一些恶魔抓住了公主&#xff08;P&#xff09;并将她关在了地下城的右下角。地下城是由 M x N 个房间组成的二维网格。我们英勇的骑士&#xff08;K&#xff09;最初被安置在左上角的房间里&#xff0c;他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正…

[jQuery] 判断复选框checkbox是否选中checked

返回值是true/false method 1: $("#register").click(function(){if($("#accept").get(0).checked){alert($("#accept").get(0).checked);}else{alert($("#accept").get(0).checked);}});// 其中accept为复选框的id. 或者可以替换为: …

Nature:2020年10大科学发现

文章来源&#xff1a;新浪探索在2020年即将结束之际&#xff0c;《自然》&#xff08;Nature&#xff09;杂志盘点了今年发表的科学新闻和研究观点&#xff0c;从中选出了十项最为重大的科学发现&#xff0c;既包括新冠病毒研究、压力如何导致白发、HIV治疗等医学方面的研究&am…