2021年12月16日

粉刷墙纸的问题

摘要: """输入: [[17,2,17],[16,16,5],[14,3,19]]输出: 10解释: 将 0 号房子粉刷成蓝色,1 号房子粉刷成绿色,2 号房子粉刷成蓝色。 最少花费: 2 + 5 + 3 = 10。解题思路:本题采用动态规划的方式,类似求两个字符串求最大公共子序列。其中,定义dp数组,表 阅读全文

posted @ 2021-12-16 09:48 random_boy 阅读(36) 评论(0) 推荐(0)

键盘系列

摘要: """N=7output=9N=3output=3"""def get_a(n_num): def dp(n, a_num, a_copy): if n <= 0 : return a_num return max( dp(n-1, a_num + 1, a_copy), dp(n-2, a_num 阅读全文

posted @ 2021-12-16 09:48 random_boy 阅读(41) 评论(0) 推荐(0)

打家劫舍问题

摘要: """打家劫舍问题是一种典型的动态规划问题,按照房间的不同分布,其解法略有轻微的修改,下面分布以三个例子进行介绍1)房子在一字排开,首尾不相连2)房子成环形,首尾相连3)房子成树状结构""""""1)房子在一字排开,首尾不相连示例:输入:[1,2,3,1] output = 4输入:[2,7,9,3 阅读全文

posted @ 2021-12-16 09:47 random_boy 阅读(93) 评论(0) 推荐(0)

博弈问题

摘要: """博弈问题,也称为俩海盗分宝⽯,俩⼈拿硬币的问题,其解法也是动态规划dp数组的含义:dp[i][j].fir 表⽰,对于 piles[i...j] 这部分⽯头堆,先⼿能获得的最⾼分数。dp[i][j].sec 表⽰,对于 piles[i...j] 这部分⽯头堆,后⼿能获得的最⾼分数。举例理解⼀下 阅读全文

posted @ 2021-12-16 09:47 random_boy 阅读(87) 评论(0) 推荐(0)

导航