
动态规划
动态规划
鹿谷門実
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode-887. 鸡蛋掉落 ——动态规划加二分查找
如果没有看懂题目意思的老哥,建议可以先看李永乐老师的视频:《复工复产找工作?先来看看这道面试题:双蛋问题》,下面我使用的思路方法也基本是按照该思路来的。 思路: 正如在例题解释中所说,要在最坏的情况下,那么什么是最坏情况下至少要扔几次呢? 1)首先先考虑只有一个鸡蛋的情况下(假设有n层楼),那么你只能从第1层开始摔,要是你从中间开始摔并且摔坏了,那不好意思,你就只知道F层只有可能在中间层以下的位置...原创 2020-04-11 17:18:38 · 373 阅读 · 0 评论 -
LeetCode-312. 戳气球—分治算法加动态规划
思路: 在使用分治法时,我们应该考虑的核心问题是如何用子问题的解来表示原问题的解,也就是子问题该如何划分才能通过子问题来求解原问题。我们把描述子问题的解与原问题的解之间的关系的表达式称为状态转移方程。 首先我们尝试每戳破一个气球,以该气球为边界将气球数组分为两部分,使用这两部分的解来求解原问题。 我们设戳破区间 i 到 j 间的气球我们得到的最大金币数为coin。及coin = def( i ,...转载 2020-03-20 10:21:16 · 563 阅读 · 0 评论 -
LeetCode-322. 零钱兑换—dfs和动态规划两种方法解决
给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 示例 1: 输入: coins = [1, 2, 5], amount = 11 输出: 3 解释: 11 = 5 + 5 + 1 示例 2: 输入: coins = [2], amount = 3 输出: -1 说明: 你可以认为每...转载 2020-03-16 16:13:38 · 226 阅读 · 0 评论 -
LeetCode-494. 目标和 ——动态规划
给定一个非负整数数组,a1, a2, …, an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。 返回可以使最终数组和为目标数 S 的所有添加符号的方法数。 示例 1: 输入: nums: [1, 1, 1, 1, 1], S: 3 输出: 5 解释: -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1...转载 2020-03-15 17:37:13 · 234 阅读 · 0 评论 -
蓝桥杯 算法提高 最大值路径 ——动态规划加广度优先搜索
问题描述 刷微博,编程序。如下图所示,@北京发布 提出了如下“头脑震荡”问题。对此问题做一般化描述: 有n阶方阵,从矩阵的左下角元素为起点,从行或列(水平或垂直)两个方向上移动,直到右上角。求出有多少条路径可以使得经过的元素累加值最大,最大值是多少。 输入格式 共有n+1行。 第一行整数n,表示矩阵的阶数,2<=n<=10。 第二行起,每行n个整数,以空格...原创 2020-02-28 10:33:48 · 505 阅读 · 0 评论 -
蓝桥杯 秘密行动-ADV-302 动态规划
资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小D接到一项任务,要求他爬到一座n层大厦的顶端与神秘人物会面。这座大厦有一个神奇的特点,每层的高度都不一样,同时,小D也拥有一项特殊能力,可以一次向上跳跃一层或两层,但是这项能力无法连续使用。已知向上1高度消耗的时间为1,跳跃不消耗时间。由于事态紧急,小D想知道他最少需要多少时间到达顶层。 输入格式 第一行包含一个整数n...原创 2020-02-24 14:23:40 · 496 阅读 · 0 评论 -
LeetCode-63. 不同路径 II——动态规划
此题也是要用动态规划,可以参照 LeetCode-62. 不同路径——动态规划入门 但这里要注意,如果起点就有障碍物的话,那么根本到不了终点。同样的,如果只有一行或一列的话,但中间存在障碍物的话,那么也是到达终点的。也就是说,我们在设置第一行第一列中的dp值时不仅要判断当前位置是否有障碍物,同时也要判断前面的值是否存在障碍物,这里我们可以当判断出当前位置没障碍物直接将上一次的结果赋值到当前值中即...原创 2020-02-20 20:07:45 · 213 阅读 · 0 评论 -
LeetCode-62. 不同路径——动态规划入门
看到这题,很容易能想到用递归的思路,递归大概的思路如下 假设有2×3的网格,那么从编号1出发,左子树表示从该点向下,右子树表示从该点先右,统计最后的根节点为6的个数即为路径的总和,其实这题跟LeetCode-64. 爬楼梯的思想差不多的. 递归的代码如下 public class Question_62 { public int uniquePaths(int m, in...原创 2020-02-20 17:40:40 · 167 阅读 · 0 评论 -
LeetCode-70. 爬楼梯——动态规划
方法一:暴力法 在暴力法中,我们将会把所有可能爬的阶数进行组合,也就是 1 和 2 。而在每一步中我们都会继续调用 climbStairsclimbStairs 这个函数模拟爬 11 阶和 22 阶的情形,并返回两个函数的返回值之和。 climbStairs(i,n)=(i + 1, n) + climbStairs(i + 2, n) climbStairs(i,n)=(i+1,n)+clim...转载 2020-02-19 19:54:44 · 228 阅读 · 0 评论 -
LeetCode-64. 最小路径和——动态规划
看到这个题时,我立马觉得肯定要用dfs或者bfs来进行搜索(因为这个跟迷宫问题挺像的),遍历所有的路径,并将路径求和取最小值,于是我便用dfs进行遍历,虽然出得了结果,但要是数据过多的话会超时. public class Question_64 { //只能向下或者向右移动一步 static int[] xx={1,0}; static int[] yy={0,1}; ...原创 2020-02-19 16:20:17 · 271 阅读 · 0 评论 -
LeetCode-5.最长回文子串——动态规划解决
回文是一个正读和反读都相同的字符串,例如,“aba” 是回文,而“abc” 不是。 使用动态规划解决的实现思路:一旦在一个回文串的两端,对称地加上相同的元素,那么新生成的字符串仍然是一个回文串 public class Question_05 { public static String longestPalindrome(String s) { char[] ch =...原创 2020-02-19 13:18:05 · 343 阅读 · 0 评论 -
2018 第九届 蓝桥杯 JavaB组 摔手机(动态规划解决)
x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。 各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来, 之后才允许上市流通。 x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。塔的每一层高度都是一样的,与地球上稍有不同的是,他们的 第一层不是地面,而是相当于我们的2楼。 如果手机从第7层扔下去没摔坏,但第8层摔坏了,...原创 2020-02-14 22:58:02 · 762 阅读 · 0 评论