动态规划
朱海涛的博客
你知道的越多,你不知道的越多
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
每天一道算法题-动态规划-罗马数字转整数
题目: 罗马数字包含以下七种字符:I,V,X,L,C,D和M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX+V+II...原创 2020-06-27 22:41:42 · 211 阅读 · 0 评论 -
每天一道算法题- 动态规划-连续子数组的最大值
题目: 输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n)。 示例1: 输入: nums = [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释:连续子数组[4,-1,2,1] 的和最大,为6。 程序: class Solution { public static int maxSubArray(int[] nums) { int res = nums[0]; ...原创 2020-06-26 12:38:31 · 352 阅读 · 0 评论 -
每天一道算法题-动态规划-股票的最大利润
题目描述: 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。示例 2: 输入: [7,6,4,3,1] 输出: 0 解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。 分析: ...原创 2020-06-26 11:47:35 · 866 阅读 · 0 评论 -
每天一道算法题-动态规划 单词分隔
给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。示例 1: 输入: s = "leetcode", wordDict = ["leet", "code"] 输出: true 解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。示例 2: 输入: s = "applepenapple", wordDict .原创 2020-06-25 23:49:23 · 284 阅读 · 0 评论 -
每天一道算法题-动态规划求钢筋分割
Dynamic programming 动态规划,与分治法相似,都是通过组合子问题的解来求解原问题,但动态规划是应用于子问题重叠的场景,每个子问题都只求一遍,将解存入表格中,避免不必要的重复工作。 问题:购买长钢条,将其切割为短钢条出售,不同长度的钢条对应不同的价格,希望得到最佳的切割方案使利润最大化。 长度 i 1 2 3 4 5 6 7 8 9 10 价格 p 1 5 8 9 10 17 17原创 2020-06-22 15:07:52 · 638 阅读 · 1 评论
分享