![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
Giotto_Ven
交大控制科学与工程研究生
展开
-
Python3-[49]面试题49.丑数(堆排序&去重/动态规划DP)A
面试题46.丑数题目解题思路解法1:暴力判断每个数是否为丑数O(n2)O(n^2)O(n2)code1: O(n2)O(n^2)O(n2)解法2:最小堆code2:heap&set解法3:动态规划(DP)3.1定义状态:3.2状态转移方程:3.3初始化:3.4返回值code3:dp 题目 我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。 示例: 输入: n = 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, 9,原创 2020-08-29 21:55:58 · 631 阅读 · 0 评论 -
Python3-[48]面试题47.礼物的最大价值(动态规划DP)
面试题47.礼物的最大价值题目解题思路定义状态状态转移方程状态初始化状态返回代码 题目 在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物? 解题思路 典型的DP问题。 定义状态 状态dp[i][j]为到达当前格子时的最大价值 状态转移方程 dp[i,j]=max(dp[i,j−1],dp[i−1,j])+grid[i原创 2020-08-29 21:22:50 · 235 阅读 · 0 评论 -
Python3-[40]面试题42.连续子数组的最大和(动态规划)A
面试题42.连续子数组的最大和题目解题思路1.状态定义:2.动态方程:4.初始化3.输出:代码 题目 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 P.S. 题目来源于leetcode. 解题思路 动态规划解决: 1.状态定义: dp[i]为以nums[i]结尾的连续子数组的最大和。 2.动态方程: 如果之前的和dp[i-1]小于0,说明dp[i-1]对当前值起到反作用,则舍去之前的和dp[i-1],令nums[i]为当前状态值进行计算。 if dp原创 2020-08-27 21:15:09 · 492 阅读 · 0 评论