
动态规划
动态规划算法
努力的老周
一个老码农,中年大叔。打过工,做过老板。
现有神兽一枚,努力培养神兽中。
展开
-
LeetCode题解——198. 打家劫舍
题目相关题目链接LeetCode中国,https://leetcode-cn.com/problems/house-robber/。题目描述你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例示例1输入:[1,2,3,1]输出:4原创 2020-08-28 21:08:35 · 278 阅读 · 0 评论 -
LeetCode题解——64. 最小路径和
题目相关题目链接LeetCode中国,https://leetcode-cn.com/problems/minimum-path-sum/。题目描述给定一个包含非负整数的mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。题目分析LeetCode 给出本题难度中...原创 2020-08-06 18:55:24 · 412 阅读 · 0 评论 -
最长递增子序列(Longest Increasing Subsequence)
定义最长上升子序列(Longest Increasing Subsequence,LIS),在计算机科学上是指一个序列中最长的单调递增的子序列。问题描述给定一个长度为 N 的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱)。例如:给定一个长度为 5 的数组{5, 6, 1, 2, 8},则其最长的单调递增子序列为 {5,6,8},长度为 3。解法动态规划时间复杂度该方法的时间复杂度为 。实现过程下面我们用一个实例来分析一下动态规划求解 LIS 的整个过程。原创 2020-05-19 16:03:10 · 4199 阅读 · 0 评论 -
动态规划解题套路
动态规划(Dynamic Programming)动态规划属于运筹学范围。动态规划是求解决策过程最优化的数学方法。把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法——动态规划。动态规划的问题之所以难,是因为它的其他算法不同,动态规划问题没有模板可以背诵。而且动态规划问题类型很多。总体来说,动态规划的问题有以下几类:1、计数问题。典型题目有机器人走路。2、求最大值最小值问题。典型问题有最长上升子序列。3、存在性问题。典型问题有取石子游戏原创 2020-08-29 10:19:22 · 567 阅读 · 0 评论