动态规划
error0318
这个作者很懒,什么都没留下…
展开
-
Leetcode 1671. 得到山形数组的最少删除次数
题目链接:Leetcode 1671. 得到山形数组的最少删除次数题意:我们定义arr是山形数组当且仅当它满足:arr.length >= 3 存在某个下标i(从 0 开始)满足0 < i < arr.length - 1且: arr[0] < arr[1] < ... < arr[i - 1] < arr[i] arr[i] > arr[i + 1] > ... > arr[arr.length - 1] ...原创 2020-11-30 15:36:43 · 253 阅读 · 0 评论 -
LeetCode 1643. 第 K 条最小指令
题目链接:LeetCode 1643. 第 K 条最小指令题意:Bob 站在单元格(0, 0),想要前往目的地destination:(row, column)。他只能向右或向下走。你可以为 Bob 提供导航指令来帮助他到达目的地destination。指令用字符串表示,其中每个字符:'H',意味着水平向右移动 'V',意味着竖直向下移动能够为 Bob 导航到目的地destination的指令可以有多种,例如,如果目的地destination是(...原创 2020-11-02 22:54:51 · 593 阅读 · 0 评论 -
LeetCode 1641. 统计字典序元音字符串的数目
题目链接:1641. 统计字典序元音字符串的数目题意:给你一个整数n,请返回长度为n、仅由元音 (a,e,i,o,u) 组成且按字典序排列的字符串数量。字符串s按字典序排列需要满足:对于所有有效的i,s[i]在字母表中的位置总是与s[i+1]相同或在s[i+1]之前。解题思路: 一看就是动态规划。也就是找规律。发现a元素能够在上一次的每个组合前 加, 而 e 元素能够在除了 a 元素开头的其他元素前面加................以...原创 2020-11-02 17:52:38 · 347 阅读 · 0 评论 -
ProjectEuler Problem 18.Maximum path sum I
题目链接:18.Maximum path sum I题意: By starting at the top of the triangle below and moving to adjacent numbers on the row below, the maximum total from top to bottom is 23.3742468 593That is, 3 + 7 + 4 + 9 = 23.解题思路: 动态规划的思想,下一行的值等于上一行...原创 2020-09-21 09:54:37 · 95 阅读 · 0 评论 -
LeetCode 70. 爬楼梯
题目链接:LeetCode 70. 爬楼梯题意: 假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定n是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶解题思路: 典型的动态规划,斐波那契数列class Solution {public: int climbStairs(int n) { ...原创 2020-09-14 21:11:17 · 92 阅读 · 0 评论 -
LeetCode 1575. 统计所有可行路径
题目链接:LeetCode 1575. 统计所有可行路径题意: 给你一个互不相同的整数数组,其中locations[i]表示第i个城市的位置。同时给你start,finish和fuel分别表示出发城市、目的地城市和你初始拥有的汽油总量每一步中,如果你在城市i,你可以选择任意一个城市j,满足 j != i且0 <= j < locations.length,并移动到城市j。从城市i移动到j消耗的汽油量为|locations[i]...原创 2020-09-07 16:31:18 · 361 阅读 · 0 评论 -
LeetCode 486. 预测赢家
题目链接:LeetCode 486. 预测赢家题意:给定一个表示分数的非负整数数组。 玩家 1 从数组任意一端拿取一个分数,随后玩家 2 继续从剩余数组任意一端拿取分数,然后玩家 1 拿,…… 。每次一个玩家只能拿取一个分数,分数被拿取之后不再可取。直到没有剩余分数可取时游戏结束。最终获得分数总和最多的玩家获胜。给定一个表示分数的数组,预测玩家1是否会成为赢家。你可以假设每个玩家的玩法都会使他的分数最大化。示例 1:输入:[1, 5, 2]输出:False解释:一开始,玩家1可..原创 2020-09-02 13:48:19 · 148 阅读 · 0 评论 -
LeetCode 1537. 最大得分
题目链接:LeetCode 1537. 最大得分题意: 你有两个有序且数组内元素互不相同的数组nums1和nums2。一条合法路径定义如下:选择数组 nums1 或者 nums2 开始遍历(从下标 0 处开始)。 从左到右遍历当前数组。 如果你遇到了nums1和nums2中都存在的值,那么你可以切换路径到另一个数组对应数字处继续遍历(但在合法路径中重复数字只会被统计一次)。得分定义为合法路径中不同数字的和。请你返回所有可能合法路径中的最大得分。由于答...原创 2020-08-28 13:28:41 · 257 阅读 · 0 评论 -
LeetCode 1563. 石子游戏 V
题目链接:LeetCode 1563. 石子游戏 V题意: 几块石子 排成一行 ,每块石子都有一个关联值,关联值为整数,由数组 stoneValue 给出。游戏中的每一轮:Alice 会将这行石子分成两个 非空行(即,左侧行和右侧行);Bob 负责计算每一行的值,即此行中所有石子的值的总和。Bob 会丢弃值最大的行,Alice 的得分为剩下那行的值(每轮累加)。如果两行的值相等,Bob 让 Alice 决定丢弃哪一行。下一轮从剩下的那一行开始。只 剩下一块石子 时,游戏结束。Ali...原创 2020-08-24 18:17:14 · 401 阅读 · 0 评论 -
LeetCode 1547. 切棍子的最小成本
题目链接:LeetCode 1547. 切棍子的最小成本题意: 有一根长度为 n 个单位的木棍,棍上从 0 到 n 标记了若干位置。例如,长度为 6 的棍子可以标记如下:给你一个整数数组 cuts ,其中 cuts[i] 表示你需要将棍子切开的位置。你可以按顺序完成切割,也可以根据需要更改切割的顺序。每次切割的成本都是当前要切割的棍子的长度,切棍子的总成本是历次切割成本的总和。对棍子进行切割将会把一根木棍分成两根较小的木棍(这两根木棍的长度和就是切割前木棍的长度)。请参阅第一个示例以..原创 2020-08-24 10:52:04 · 558 阅读 · 0 评论 -
codeforces 1324E. Sleeping Schedule(动态规划)
E. Sleeping Schedule题目链接:codeforces 1324E题意: n,h,l,r,给n个时间,从0开始睡觉,每天共有 h 小时,每次睡 Ai 或者 Ai-1 的 时间,如果在l 和 r段时间入睡 那么满意度+1,问满意度最高多少?解题思路: 动态规划问题,#include <bits/stdc++.h>using n...原创 2020-03-13 15:15:43 · 3036 阅读 · 2 评论 -
2019牛客暑期第二场 H .Second Large Rectangle
题意 给出n行m列的矩阵,求由 1 组成的第二大矩形面积,如果1矩阵不足2个,输出0。题解 将每列相邻的1看成一个宽为1的矩形,然后向左(右)扩展超时,通过率为97.62%(虽然超时,但思想很好理解,理解这个之后,下面AC代码剪枝)#include<iostream>#include<cmath>#include<algorithm...原创 2019-08-08 21:11:28 · 172 阅读 · 0 评论 -
2019牛客暑期第一场 E . ABBA 动态规划
题目Bobo has a string of length 2(n + m) which consists of characters `A` and `B`. The string also has a fascinating property: it can be decomposed into (n + m) subsequences of length 2, and among the...转载 2019-07-21 09:51:16 · 518 阅读 · 0 评论