
动态规划
文章平均质量分 96
GhostintheCode
来自大山深处的一名IT小学生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python leetcode 152. Maximum Product Subarray
class Solution(object): def maxProduct(self, nums): """ :type nums: List[int] :rtype: int """ maxval = float('-inf') imax = 1 imin = 1 for i in range(len(nums)): if nums[i]<.原创 2020-05-20 11:19:39 · 348 阅读 · 0 评论 -
Python Leetcode 221. Maximal Square 动态规划问题
Python Leetcode 221. Maximal Square 动态规划问题这种题目肯定要用动态规划,像这种矩阵类型的,那么接下来就是找递推公式。对于动态规划我也没有什么好的方法,就多做一点题吧,就有感觉了。Doneclass Solution(object): def maximalSquare(self, matrix): """ :type matrix: List[List[str]] :rtype: int原创 2020-05-09 09:32:29 · 298 阅读 · 0 评论 -
动态规划从入门到放弃(一)
动态规划从入门到放弃(一)淘宝的“双十一”购物节有各种促销活动,比如“满 200 元减 50 元”。假设你女朋友的购物车中有 n 个(n>100)想买的商品,她希望从里面选几个,在凑够满减条件的前提下,让选出来的商品价格总和最大程度地接近满减条件(200 元),这样就可以极大限度地“薅羊毛”。作为程序员的你,能不能编个代码来帮她搞定呢?要想高效地解决这个问题,就要用到我们今天讲的动态规划...转载 2019-04-10 21:30:54 · 667 阅读 · 0 评论 -
Python 小易的字典
编程题思路可以用动态规划的思想解决这样的题目,把一个大的问题拆分为两个小问题来解决。这里只有两个不一样的字母。那么字典中的字符串肯定是a开头的和z开头的。并且我们已知有多少个a和多少个z,就能求出他们有多少种排列组合(设为x)。那么这个适合会出现两种情况,如果k大于x,那么输出-1,如果k小于x,那么就看剩下的两种情况,1. 如果第一个字母是a的话,那么以a为首字母的字符串的排列组合是由n-...原创 2019-07-08 11:09:34 · 329 阅读 · 0 评论 -
Python返回滑动窗口中的最大值 LeetCode NO.239
之前博客写过一道关于大顶堆小顶堆的优先队列,Python 返回数据流中的第k大元素 LeetCode NO.703。这题也可以用这种方法很好的求解。思路:我们可以来维护k大小的大顶堆。这个堆顶的元素就是最大值。可以想到我们对堆进行就可以得最后的结果。举个栗子原创 2019-07-25 12:48:11 · 515 阅读 · 0 评论 -
一文弄懂动态规划(DP Dynamic Programming)下楼梯,国王和金矿,背包问题,Dijkstra算法
动态规划参考链接漫画算法,什么是动态规划?DP动态规划是一种分阶段求解决策问题的数学思想题目一问:下楼梯问题,有一座高度是10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶,请问有多少中走法。思路刚才这个题目,你每走一步就有两种走法,暂时不管0级到8级台阶的过程。想要走到10级,必然是从8级或者9级走的。那么问题来了,如果我们以及0到9级台阶的走法有x种,0到8级台阶有...原创 2018-12-06 10:59:58 · 1849 阅读 · 0 评论 -
python 买卖股票的最佳时机 LeetCode No.122
python 买卖股票的最佳时机 LeetCode No.122解法:一、暴力解法二、贪心算法:由于不限制买卖次数,也没有交易费用,就可以是用贪心算法。思路:只要第二天比前一天高,我们就买进,第二天卖掉,就可以赚钱。三、动态规划:根据算法导论这本最权威的书(最难读的一本书)中提到动态规划的四个步骤,第一刻画一个最优解的结构特征,第二递归地定义最优解的值,第三计算最优解的值,通常采用自低向...原创 2019-08-31 14:09:26 · 384 阅读 · 0 评论 -
Python 生成括号 LeetCode 22
解法:1、n代表的是左括号和右括号的个数,最后生成的字符串的长度为2n,首先想到的就是枚举的方法,假设有2n的数组,每一个格子都有两种情况,填做括号还是右括号。2、很明显上面的方法是不符合常理的,因为做括号和右括号都是有限制,当n为3的时候,不会出现((((((的情况,所以当我们进行递归的时候,就需要进行判断,当左括号用完的时候就要停止,称为剪枝。3、动态规划解法,当看到有和没有,放和不放的...原创 2019-09-03 14:28:46 · 432 阅读 · 0 评论