动态规划
DEUSJIN
这个作者很懒,什么都没留下…
展开
-
编辑距离 Edit Distance(difficult)(Dynamic Programming)
Problem:Given two words word1 and word2, find the minimum number of operations required to convert word1 to word2.You have the following 3 operations permitted on a word:Insert a characterDelete a...原创 2020-04-06 11:11:09 · 106 阅读 · 0 评论 -
最长上升子序列(动态规划+二分查找)巧妙的思路
题目:给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗?来源:力扣(L...原创 2020-03-14 14:55:36 · 920 阅读 · 0 评论 -
Best Time to Buy and Sell Stock(买卖股票的最佳时机)
题目:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。来源:力扣(LeetCode)思路:假设存在一个数列(不考虑空或一个元素的情况)a,b,c,d,e,f我们用一个i指针从下标1开始,每次i运动的过程中,我们计算的就是以下标i为结束(即在第i...原创 2020-03-09 12:24:36 · 165 阅读 · 0 评论 -
Burst Balloons(戳气球)(困难)(回溯)(动态规划)
题目:有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中。现在要求你戳破所有的气球。每当你戳破一个气球 i 时,你可以获得 nums[left] * nums[i] * nums[right] 个硬币。 这里的 left 和 right 代表和 i 相邻的两个气球的序号。注意当你戳破了气球 i 后,气球 left 和气球 right 就变成了相邻的气...原创 2020-02-24 15:07:34 · 540 阅读 · 0 评论 -
最大子序和 动态规划法(新手向)
题目:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。我们先定义一个函数F(N)表示nums数组以第N个元素为尾部的最大子序和,那么答案一定在F(1),F(2),F(3)…F(N)中,令F(1)为nums[0], 则有:F(N) = F(N-1) +nums[N];(当F(N-1)>0时)F(N) = nums[N];(当F(N-...原创 2020-01-30 09:58:19 · 181 阅读 · 0 评论