
动态规划
永遠に_
这个作者很懒,什么都没留下…
展开
-
买股票I
描述假设你有一个数组prices,长度为n,其中prices[i]是股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益1.你可以买入一次股票和卖出一次股票,并非每天都可以买入或卖出一次,总共只能买入和卖出一次,且买入必须在卖出的前面的某一天2.如果不能获取到任何利润,请返回03.假设买入卖出均无手续费...原创 2022-06-21 16:00:47 · 257 阅读 · 1 评论 -
叠罗汉问题II
叠罗汉问题给定一个二维int的数组actors,每个元素对应两个值,分别代表一个演员的身高和体重。要求一个演员站在另一个演员的肩膀上叠起来,且上面的人要比下面的人轻,下面的人要比上面的人高。同时给定演员总数n,要求返回最多能叠的人数。保证总人数小于等于500。这里的actors是一个二维数组,本题的思想是我们可以先按照身高由小到大来进行排序,再根据体重得到根据身高排完序的最长单调递增子序列,这个序列的长度就是我们可以得到的人数,具体的python代码如下所示:...原创 2022-06-21 14:55:44 · 369 阅读 · 0 评论 -
动态规划解决钢条切割问题
题目描述一家公司购买长钢条,将其切割成短钢条出售,切割本身没有成本,长度为i的短钢条的价格为Pi。那给定一段长度为n的钢条和一个价格表Pi,求钢条的切割方案使得收益Rn最大。输入要求输入钢条的长度n。输出要求输出获得的最大收益。输入样例7输出样例18具体思路:对n进行切割,保存切割产生的最大收益,如value[10]表示对10进行切割产生的最大收益,明显其中有4种切割方式,并且用到了前面产生的结果value[10] = max{value[1]+value[9], value[2]+原创 2020-12-03 21:57:36 · 592 阅读 · 0 评论 -
动态规划解决最长的非连续子序列
不下降的数字序列在一个数字序列中,找到一个最长的非连续子序列,使得这个子序列是不下降(非递减)。现有序列A={1,2,3,-1,-2,7,9},则A的最长不下降子序列是{1,2,3,7,9}。如果有多个最长序列,只需选数字顺位靠后的序列从大到小输出。本题可以使用动态规划来进行解决,首先得找到它的子序列...原创 2020-12-03 21:53:07 · 1176 阅读 · 0 评论 -
动态规划解决草药采集问题
题目描述小K是个苦命的孩子,他的师傅为了多赚钱,以减肥为理由,让他去采药,并说不完成不能吃饭。野地里有许多不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。要求在规定的时间t里,采到的草药的总价值最大。输入要求第一行有2个整数T(1≤T≤1000)和M(1≤M≤100),一个空格隔开,T代表总共能够用来采药的时间,M代表山洞里的草药的数目。接下来的M行每行包括两个在1到100之间包括1和100)的整数,分别表示采摘某株草药的时间和这株草药的价值。输出要求1个整数,表示在规定的时间内可以原创 2020-12-03 21:42:28 · 1490 阅读 · 0 评论